使用正则表达式检查句子中是否有特殊字符和符号
Check if there is special character and symbol inside a sentence using regex
我想在 shell 脚本中使用 Regex 检查文本文件中的一行中是否有特殊字符。
假设有句子 "assccÑasas"
如何检查行内是否有'Ñ',所以它应该作为错误输出。
我也想检查是否有'/'或'^'或'&'等符号
我的代码:
VALID='^[a-zA-Z_0-9&.<>/|\-]+$' #myregex
checkError(){
if [[ $line =~ $VALID ]]; then
echo "tes"
else
echo "not okay"
exit 1
fi
}
while read line
do
checkRusak
done <
所以这个例子如果有句子"StÀck Overflow;"那么它会输出错误。如果有句"stack overflow;"还是输出错误。
但如果只有 "stack overflow" (没有符号或特殊字符),它将输出 "test"
到目前为止,它可以检查符号('/' 或 '\' 等),但在特殊字符方面仍然存在问题。
非常感谢任何帮助,
提前谢谢你
你可以
定义,哪些字符有效,只允许这些或
定义,哪些字符无效并检查是否有
对于第二种方法,您可以使用此正则表达式:[^a-zA-Z_0-9\s]
。
方括号内的 ^
否定字符 class,因此它匹配任何包含 不是 字母的字符的字符串A-Z
、a-z
、数字、下划线或白色 space。
既然要检测单个字符,就不需要量词了。
我想在 shell 脚本中使用 Regex 检查文本文件中的一行中是否有特殊字符。 假设有句子 "assccÑasas" 如何检查行内是否有'Ñ',所以它应该作为错误输出。 我也想检查是否有'/'或'^'或'&'等符号
我的代码:
VALID='^[a-zA-Z_0-9&.<>/|\-]+$' #myregex
checkError(){
if [[ $line =~ $VALID ]]; then
echo "tes"
else
echo "not okay"
exit 1
fi
}
while read line
do
checkRusak
done <
所以这个例子如果有句子"StÀck Overflow;"那么它会输出错误。如果有句"stack overflow;"还是输出错误。 但如果只有 "stack overflow" (没有符号或特殊字符),它将输出 "test"
到目前为止,它可以检查符号('/' 或 '\' 等),但在特殊字符方面仍然存在问题。
非常感谢任何帮助, 提前谢谢你
你可以
定义,哪些字符有效,只允许这些或
定义,哪些字符无效并检查是否有
对于第二种方法,您可以使用此正则表达式:[^a-zA-Z_0-9\s]
。
方括号内的 ^
否定字符 class,因此它匹配任何包含 不是 字母的字符的字符串A-Z
、a-z
、数字、下划线或白色 space。
既然要检测单个字符,就不需要量词了。