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