regex - RegEx:从匹配中排除模式
问题描述
我知道 RegEx 的一些基础知识,但不是专业人士。我正在学习它。目前,我正在使用以下非常非常简单的正则表达式来匹配给定句子中的任何数字。
/d
现在,我想要的是,除了 e074663 OR e123444 OR e7736 等模式之外的所有数字都应该从匹配中排除。所以对于下面的输入,
编辑398 e 997979表达式9798729889 & T 900980980098 ext 以查看 e081815 匹配项。滚动匹配项或 e081815 表达式 e081815 以获取详细信息。e081815 支持 PCRE 和 JavaScript 风格的 RegEx 支持 e081815。使用测试模式 e081815 验证您的表达式。
应该只匹配粗体数字,而不是任何 e081815。我尝试了以下但没有成功。
(^[e\d])(\d)
此外,展望未来,需要添加更多模式以进行排除。例如 cg636553 或 cg(任何数字)。在这方面的任何帮助将不胜感激。谢谢!
解决方案
另一种选择是使用带有环视的捕获组
(?:\b(?!e|cg)|(?<=\d)\D)[A-Za-z]?(\d+)
(?:
非捕获组\b(?!e|cg)
字边界,断言右边是不是e
或cg
|
或者(?<=\d)\D
匹配除数字之外的任何字符,断言直接在左边的是数字
)
关闭组[A-Za-z]?
匹配一个可选的字符 a-zA-Z(\d+)
捕获组 1中的 1 个或多个数字
推荐阅读
- xml - 解析 SOAP 请求返回 null - ORACLE SQL
- android - 构建失败并出现异常以及为什么出现 Agora 错误它在我的项目中我该如何解决这个问题
- three.js - 在threejs中初始加载3d对象期间旋转相机的问题
- javascript - OpenTok.js getImgData() 未定义
- reactjs - 如何更改下拉悬停颜色反应 Material-UI Select
- r - 用 R 中的平均值、中位数、范围和数量进行总结
- javascript - 如何将强制对齐添加到 chrome 的网络语音 api?
- python-3.x - Clarifai 在使用 GRPC Python 客户端时返回握手错误
- javascript - 在 JSDOC 和 WebStorm 中记录布尔类型的可选参数的正确方法是什么?
- oracle - External table read issue on 19c