NOT*_*NOT 4 python regex regex-lookarounds
我试图匹配以某个字符串开头的整个字符串,然后匹配任意数量的字符::,除非::匹配,否则仅接受 if 后跟该字符串CASE。
例如:以 开头,后跟Linus::0 个或多个 1 字符的字符串,除非 if ::thenCASE必须跟在 else 后面,仅匹配 之前的所有内容::。
Linus::AOPKNS::CASE将捕获整个字符串
Linus::AOPKNS将捕获整个字符串
Linus::AOPKNS::OK只会捕获Linus::AOPKNS
我想我必须使用积极的前瞻,但考虑到我想匹配 之前的任意数量的字符,我不太确定该怎么做::。
使用经过调和的贪婪令牌:
^ # Match at the start of the string
Linus:: # 'Linus::', literally,
(?:(?!::).)+ # followed by a sequence of characters that doesn't contain '::'
(?:::CASE)? # and, optionally, '::CASE'.
Run Code Online (Sandbox Code Playgroud)
在 regex101.com 上尝试一下。
根据您的用例,您可能需要在模式末尾添加(字边界)。\b
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |