用于选择以 'ing' 结尾的单词的正则表达式,除非
Regex for selecting words ending in 'ing' unless
我想 select 以正则表达式结尾的单词,但我想排除以 thing
结尾的单词。例如:
everything
running
catching
nothing
这几个词中,运行和catching应该select编,应该排除一切。
我尝试了以下方法:
.+ing$
但这select就是一切。我在想看看 aheads/look arounds 可能是解决方案,但我还没有找到一个可行的方法。
适用于 Python 或 R 的解决方案会有所帮助。
在 python 中,您可以像这样使用否定回顾断言:
^.*(?<!th)ing$
(?<!th)
是否定后视表达式,如果 th
出现在字符串末尾的 ing
之前,则匹配失败。
请注意,如果您要匹配的单词不在单独的行上,则使用单词边界代替锚点:
\w+(?<!th)ing\b
可能是\b\w+(?<!th)ing\b
。
您也可以使用否定前瞻 (?!
来断言右边的不是 0+ 次后跟 thing
和单词边界的单词字符:
\b(?!\w*thing\b)\w*ing\b
我想 select 以正则表达式结尾的单词,但我想排除以 thing
结尾的单词。例如:
everything
running
catching
nothing
这几个词中,运行和catching应该select编,应该排除一切。
我尝试了以下方法:
.+ing$
但这select就是一切。我在想看看 aheads/look arounds 可能是解决方案,但我还没有找到一个可行的方法。
适用于 Python 或 R 的解决方案会有所帮助。
在 python 中,您可以像这样使用否定回顾断言:
^.*(?<!th)ing$
(?<!th)
是否定后视表达式,如果 th
出现在字符串末尾的 ing
之前,则匹配失败。
请注意,如果您要匹配的单词不在单独的行上,则使用单词边界代替锚点:
\w+(?<!th)ing\b
可能是\b\w+(?<!th)ing\b
。
您也可以使用否定前瞻 (?!
来断言右边的不是 0+ 次后跟 thing
和单词边界的单词字符:
\b(?!\w*thing\b)\w*ing\b