有一个shell脚本。我想定义一个不允许重音的正则表达式
我已经这样定义了我的正则表达式:
regex="^[a-zA-Z0-9]+$"
我希望它不允许像Léo这样的字符串,但是它仍然允许。
编辑:
我在循环中使用正则表达式作为参数
while [[ "$name" =~ $regex ]]
答案 0 :(得分:0)
总结一个带有不同注释的解决方案:
将语言环境设置为POSIX
或C
后,[:alnum:]
字母数字字符类将仅包含不包含变音符号的ASCII字符。
其他经过改进的RegEx引擎可能具有用于变音符号的特殊标志,但没有Bash处理的POSIX扩展RegEx POSIX ERE。
regex="^[[:alnum:]]+$"
while LC_ALL=POSIX && [[ "$name" =~ $regex ]]; do
unset LC_ALL # restore LC_ALL to its value before the RegEx test
# do stuffs in the loop
done