不包含数字5的数字

Alw*_*ing 1 regex grep

我正在尝试根据此回复使用否定的前瞻来匹配不包含数字5的匹配数字:

echo "aaa 123467890 3456 bbb" | egrep '[(?!5)[:digit:]]+'
Run Code Online (Sandbox Code Playgroud)

颜色输出显示第二个数字匹配。我该如何解决?

有什么办法egrep可以排除5在班上[:digit:]吗?(我进行了许多搜索,但最终没有找到任何东西)

mel*_*ene 5

正则表达式有两个问题:

  1. egrep (如POSIX扩展的正则表达式一样)根本不支持先行或先行。
  2. 即使这样做,[(?!5)[:digit:]]也是一个等效于的单个字符类[[:digit:]()!?](在字符类中没有任何特殊含义。

不幸的是egrep,也不支持否定的命名字符类(如中所述[[:^digit:]])。

剩下的只有两个选择: