echo "bar,320,1530596475337.d94e12fe7ad127ec28e694123a9708d3.," \
| grep "[a-zA-Z0-9,\.]{5,}"
这与我提供的字符串不匹配。我在正则表达式中匹配给定字符串的地方出了什么问题?
答案 0 :(得分:1)
Grep默认为Basic Regular Expression (BRE)方言,这要求转义量词的花括号:\{5,\}
。
更多备注:
[.]
,而无需使用[\.]
在其中包含句点。{5,}
。表示您正在使用带有grep -E
选项的ERE。a-z
可能不只是小写的拉丁字母。可以使用POSIX字符类a-zA-Z0-9
代替[:alnum:]
。总而言之,我将使用以下命令:
grep -E '[[:alnum:],.]{5,}'
答案 1 :(得分:0)
有许多不同的正则表达式方言。默认情况下,grep
使用的方言在您使用大括号时不支持。
使用选项-P
(可切换为Perl方言)重试。