我试图按照this reply使用负前瞻性来匹配不包含数字5的数字:
echo "aaa 123467890 3456 bbb" | egrep '[(?!5)[:digit:]]+'颜色输出显示第二个数字是匹配的。我该怎么解决这个问题?
egrep是否有一种将5从类[:digit:]中排除在外的方法?(我进行了多次搜索,但没有找到任何这方面的东西)
发布于 2018-09-12 17:08:25
正则表达式有两个问题:
egrep (如POSIXExtended正则表达式)根本不支持前瞻性或前瞻性。[(?!5)[:digit:]]也是一个等同于[[:digit:]()!?]的字符类。(在字符类中没有任何特殊意义。不幸的是,egrep也不支持被否定的命名字符类(如在[[:^digit:]]中)。
这只剩下两种选择:
5的字符)
grep -P '(?:(?!5)\d)+‘
(前瞻性版本,修正)。https://stackoverflow.com/questions/52299284
复制相似问题