这两个相同吗? [0-9a-fA-F]
和[0-9a-f-A-F]
我在一些文本中一直在尝试使用egrep这两个正则表达式,它们似乎是等价的。 是否有一个案例他们不会返回相同的结果?
另外,在第二个表达式中,第二个-
的含义是什么?为什么我需要它?我对这些简单的例子感到困惑。
答案 0 :(得分:9)
第二个表达式也匹配破折号和十六进制
egrep
中的修改,您正在使用的第二个实际上是无效的:
# echo "12345678" | egrep '^[0-9a-f-A-F]+$'
egrep: Invalid range end
第二个的正确表达式以短划线结束:
[0-9a-fA-F-]
答案 1 :(得分:7)
不,这两个正则表达式并不相同。在第二个中添加字符' - '
答案 2 :(得分:3)
[0-9a-f-A-F]
= [0-9a-fA-F]
+ -