我的正则表达式匹配意外模式

时间:2018-05-13 08:56:40

标签: regex

有谁知道为什么第二个模式显示它不应该与正则表达式匹配...

$grep [[:digit:]{4}] file
99g66
9888
$

2 个答案:

答案 0 :(得分:1)

因为引人注目的[]将逃离您的{4}部分。

实现这一目标的正确方法如下:

[[:digit:]]{4}

答案 1 :(得分:1)

您的表达式[[:digit:]{4}]character set,与数字,{}匹配。你可能意味着[[:digit:]]{4}。使用grep -Eegrep在扩展模式下使用该正则表达式,或者在使用基本正则表达式模式时转义大括号:

$ egrep '[[:digit:]]{4}' file

$ grep '[[:digit:]]\{4\}' file  # braces escaped