4

这两个是等价的吗?[0-9a-fA-F][0-9a-f-A-F]

我一直在一些文本中使用 egrep 尝试这两个正则表达式,它们似乎是等价的。有没有他们不会返回相同结果的情况?

另外,在第二个表达式中,第二个是什么意思,-我为什么需要它?我对这些简单的例子有点困惑。

4

3 回答 3

12

第二个表达式也匹配破折号和十六进制

编辑egrep这是你使用的第二个实际上是无效的:

# echo "12345678" | egrep '^[0-9a-f-A-F]+$'
egrep: Invalid range end

第二个的正确表达式是以破折号结尾:

[0-9a-fA-F-]
于 2012-05-10T09:43:46.567 回答
8

不,这两个正则表达式不相等。在第二个中添加字符'-'

于 2012-05-10T09:43:04.943 回答
3

[0-9a-f-A-F]= [0-9a-fA-F]+-

于 2012-05-10T09:44:19.780 回答