[0-9a-fA-F]是否与[0-9a-fAF]相同?

nac*_*o4d 3 regex grep

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

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

另外,在第二个表达式中,第二个表达式的含义是-什么?为什么我需要它?我对这些简单的例子感到困惑.

Ja͢*_*͢ck 10

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

编辑egrep,这是你使用的是什么,第二个是事实上无效:

# echo "12345678" | egrep '^[0-9a-f-A-F]+$'
egrep: Invalid range end
Run Code Online (Sandbox Code Playgroud)

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

[0-9a-fA-F-]
Run Code Online (Sandbox Code Playgroud)

  • 这是一种解释,但表达方式确实含糊不清; 你没有标记这个问题来指定任何特定的正则表达方言,所以它也可能是"是的,在实践中它们是等价的",或者"我们也不知道". (2认同)

Eug*_*nko 7

不,这两个正则表达式并不相同.在第二个你添加字符' - '