哇,这实际上匹配了é
。这里发生了什么?我希望除了通常的小写字母之外,不匹配其他任何内容。
$ echo "frappé"|egrep -E "^[a-z]+$"
frappé
Ubuntu 14.04上的egrep(GNU grep)2.16
最佳答案
您的locale设置告诉egrep
/ grep -E
如何整理[a-z]
字符范围。
$ export LC_COLLATE=C
$ echo "frappé" | egrep '^[a-z]+$'
# no match
$ export LC_COLLATE=en_US.utf8
$ echo "frappé" | egrep '^[a-z]+$'
frappé
尽管具有语言环境,但可以使用已命名的字符类将带有变音符号的字符进行匹配:
$ export LC_COLLATE=C
$ echo "frappé" | egrep '^[[:lower:]]+$'
frappé
关于regex - [a-z]如何匹配é?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28247204/