Python3查找后面不跟子字符串的字符串

2024-10-02 00:38:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根像这样的绳子:

line = "aaa farmer's blooper's mouse'd would've bbb"

从我的字符串,行,如果一个单词以撇号或撇号+s('s)结尾,那么我想去掉撇号和s,但我想保持这个词不变,否则。在

所以,我希望我的线是

^{pr2}$

如何使用正则表达式实现这一点?在


Tags: 字符串结尾lineve单词bbbaaawould
1条回答
网友
1楼 · 发布于 2024-10-02 00:38:02

使用regex lookahead来断言后面跟撇号或撇号+s('s)的内容只能是空白字符或字符串结尾,或者换句话说,是单词的结尾或字符串的结尾

import re
line = "aaa farmer's blooper's mouse'd would've bbb"
line_new = re.sub(r"'s?(?=(\s|$))", '', line)
# "aaa farmer blooper mouse'd would've bbb"

正则表达式解释

  • 是的?#匹配撇号后跟零或一个s
  • (?=(\s |$)#断言什么 后跟只能是空格字符或字符串结尾

regex的另一个替代方法是使用negative lookahead来断言后面的不是任何非空白字符 re.sub(r"'s?(?!\S)", '', line)

相关问题 更多 >

    热门问题