我正在写一个正则表达式,我需要捕获从"get"开始的多余的字符串.例如getContacts
,getBuildings
应该匹配正则表达式.但是,有时候文本可能等于getDetails或get**Details
.我不希望正则表达式包含这些.
我可以提出一个包含匹配组"详细信息"的正则表达式,但我想要排除该捕获组,而不是包含它.
[Gg]et?\w+([Dd]etail)s
Run Code Online (Sandbox Code Playgroud)
我在正则表达式方面不是很强,但是我对我写的内容的理解是:
匹配"g"或"G"后跟"et"然后可选地任何单词字符,然后是匹配组,后跟"s".
如何排除包含"详细信息"一词的结果?
这样的东西可能适合你:
\b[Gg]et(?!\w*[Dd]etails)\w+s\b
Run Code Online (Sandbox Code Playgroud)
我相信您正在寻找零宽度负前瞻...
http://www.regular-expressions.info/lookaround.html
[Gg]et(?![Dd]etail)\w+s
Run Code Online (Sandbox Code Playgroud)
假设您想排除“获取详细信息”和“获取信息”但接受“获取页面”和“获取我的详细信息”(注意原始正则表达式中的尾随 s 已经排除了“获取信息”)