1

我想选择以正则表达式结尾的单词,但我想排除以thing. 例如:

everything
running 
catching 
nothing

在这些词中,要选择跑和抓,什么都不要,什么都不要。

我尝试了以下方法:

.+ing$

但这选择了一切。我在想前瞻/环顾四周可能是解决方案,但我无法找到一个可行的解决方案。

在 Python 或 R 中工作的解决方案会很有帮助。

4

3 回答 3

3

在python中,您可以使用否定的lookbehind断言,如下所示:

^.*(?<!th)ing$

正则表达式演示

(?<!th)是否定的lookbehind 表达式,如果th出现在ing字符串末尾之前,则匹配失败。

请注意,如果您匹配的单词不在单独的行上,则使用单词边界代替锚点:

\w+(?<!th)ing\b
于 2018-11-12T21:11:17.130 回答
2

您也可以使用否定的前瞻(?!来断言右边的不是 0+ 次一个单词字符,然后是thing一个单词边界:

\b(?!\w*thing\b)\w*ing\b

正则表达式演示| Python 演示

于 2018-11-12T21:15:12.860 回答
2

可能是这样\b\w+(?<!th)ing\b的。

于 2018-11-12T21:11:52.417 回答