正则表达式忽略以特定模式结尾的字符串

问题描述

我正在尝试编写正则表达式,它应该忽略任何以 _numbers 结尾的字符串,例如 (_1234)

如下图

abc_def_1234 - should not match
abc_fgh - match
abc_ghj -  match
abc_ijk_2345 - not match

我正在尝试使用如下所示的前瞻正则表达式,但它匹配所有内容。有人可以帮助我如何实现这一目标吗?

\w+(?!_\d+)

解决方法

匹配由下划线分隔的单词,但使用否定前瞻来排除具有不需要的尾部的输入:

^(?!.*_\d+$)\w+(?<!_)$

live demo

后面的最后一步(您可以删除)要求最后一个字符不是下划线 - 即输入是 AFAICT 格式良好。