首页 > 解决方案 > 正则表达式忽略以特定模式结尾的字符串

问题描述

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

像下面

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

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

\w+(?!_\d+)

标签: regexregex-look-ahead

解决方案


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

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

现场演示

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


推荐阅读