正则表达式,不允许重音

时间:2019-07-30 15:54:48

标签: bash shell

有一个shell脚本。我想定义一个不允许重音的正则表达式

我已经这样定义了我的正则表达式:

regex="^[a-zA-Z0-9]+$"

我希望它不允许像Léo这样的字符串,但是它仍然允许。

编辑:

我在循环中使用正则表达式作为参数

  while [[ "$name" =~ $regex ]]

1 个答案:

答案 0 :(得分:0)

总结一个带有不同注释的解决方案:

将语言环境设置为POSIXC后,[: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