regex - 正则表达式忽略以特定模式结尾的字符串
问题描述
我正在尝试编写正则表达式,它应该忽略任何以 _numbers 结尾的字符串,例如 (_1234)
像下面
abc_def_1234 - should not match
abc_fgh - match
abc_ghj - match
abc_ijk_2345 - not match
我正在尝试使用如下所示的前瞻正则表达式,但它匹配所有内容。有人可以帮助我如何实现这一目标吗?
\w+(?!_\d+)
解决方案
匹配由下划线分隔的单词,但使用否定前瞻来排除具有不需要的尾部的输入:
^(?!.*_\d+$)\w+(?<!_)$
见现场演示。
后面的最后一个外观(您可以删除)是要求最后一个字符不是下划线 - 即输入是 AFAICT 格式正确。
推荐阅读
- c# - 对给出 MissingMethodException 的私有方法进行单元测试
- excel - 优化我的代码 - Excel 挂起大量数据
- java - Custom annotation to get custom object with specified set of @RequestHeaders from HttpServletRequest
- elasticsearch - 弹性搜索中的 Shingle TokenFilter 错误
- c# - 将 Foreach 循环转换为 linq 形式
- python - 正则表达式模式完全匹配 n 次
- python - 如何在 Python 中将 astroid 节点转换为 AST 节点?
- java - 强制spring只使用一个连接进行事务
- javascript - 描述两组数据之间的转换......“元转换”?
- java - 如何在没有 onCreate 方法的情况下使用 if 语句启动新 Activity?