[a-z] 是如何匹配 é 的?
How did [a-z] match é?
哇,这居然匹配了 é
。这里发生了什么?我希望它不匹配通常小写字母以外的任何内容。
$ echo "frappé"|egrep -E "^[a-z]+$"
frappé
egrep(GNU grep)2.16 on Ubuntu 14.04
您的 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é
哇,这居然匹配了 é
。这里发生了什么?我希望它不匹配通常小写字母以外的任何内容。
$ echo "frappé"|egrep -E "^[a-z]+$"
frappé
egrep(GNU grep)2.16 on Ubuntu 14.04
您的 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é