如何将否定(emacs 兼容)正则表达式限制为否定字符串
How to limit a negating (emacs-compatible) regex to the negated string
我正在寻找与“CVS
”不匹配的正则表达式。 我不想使用任何无法转换为 Emacs 正则表达式的功能。
到目前为止我有(在 Python 语法中,因为我想在 regex101.com 上显示它):
此正则表达式 不 匹配“CVS
” - 目前一切顺利。不幸的是,它不匹配“CVS and more
”,但它应该匹配它。
如何调整我的正则表达式以匹配“CVS and anything after it
”,但仍然不匹配“CVS
”? (即如何使 regex101.com page 上的最后一个测试成功?)
我的理解是,您想要匹配不是以下行的每一行:
CVS
你的尝试已经不远了。
这里是 Python 语法中的正则表达式 regex101.com:
^(?:[^C\n]|C[^V\n]|CV[^S\n]|CVS.).*|^CV?$
下面是字符串读取语法中的 elisp 正则表达式:
"^\(?:[^C\n]\|C[^V\n]\|CV[^S\n]\|CVS.\).*\|^CV?$"
注意换行符。所以在字符串语法中它变成:
^\(?:[^C
]\|C[^V
]\|CV[^S
]\|CVS.\).*\|^CV?$
n.b。您可以使用 M-x re-builder
在 Emacs 中测试这些。
我正在寻找与“CVS
”不匹配的正则表达式。 我不想使用任何无法转换为 Emacs 正则表达式的功能。
到目前为止我有(在 Python 语法中,因为我想在 regex101.com 上显示它):
此正则表达式 不 匹配“CVS
” - 目前一切顺利。不幸的是,它不匹配“CVS and more
”,但它应该匹配它。
如何调整我的正则表达式以匹配“CVS and anything after it
”,但仍然不匹配“CVS
”? (即如何使 regex101.com page 上的最后一个测试成功?)
我的理解是,您想要匹配不是以下行的每一行:
CVS
你的尝试已经不远了。
这里是 Python 语法中的正则表达式 regex101.com:
^(?:[^C\n]|C[^V\n]|CV[^S\n]|CVS.).*|^CV?$
下面是字符串读取语法中的 elisp 正则表达式:
"^\(?:[^C\n]\|C[^V\n]\|CV[^S\n]\|CVS.\).*\|^CV?$"
注意换行符。所以在字符串语法中它变成:
^\(?:[^C
]\|C[^V
]\|CV[^S
]\|CVS.\).*\|^CV?$
n.b。您可以使用 M-x re-builder
在 Emacs 中测试这些。