Python3查找后面没有子字符串的字符串
我有一个字符串如下所示:Python3查找后面没有子字符串的字符串,python,regex,python-3.x,Python,Regex,Python 3.x,我有一个字符串如下所示: line = "aaa farmer's blooper's mouse'd would've bbb" 在我的字符串行中,如果一个单词以撇号或撇号+s('s')结尾,那么我想去掉撇号和s。但我想保持这个词不变,否则 所以,我希望我的字符串是 line = "aaa farmer blooper mouse'd would've bbb" 如何使用正则表达式实现这一点?使用正则表达式断言后跟撇号或撇号+s('s)的内容只能是空白字符或字符串结尾,或者换句话说,可以是
line = "aaa farmer's blooper's mouse'd would've bbb"
在我的字符串行中,如果一个单词以撇号或撇号+s('s')结尾,那么我想去掉撇号和s。但我想保持这个词不变,否则
所以,我希望我的字符串是
line = "aaa farmer blooper mouse'd would've bbb"
如何使用正则表达式实现这一点?使用正则表达式断言后跟撇号或撇号+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"
正则表达式解释
- 是什么匹配撇号,后跟0或1 s
- (?=(\s |$)#断言什么 后跟只能是空白字符或字符串结尾
re.sub(r“'s”(?!\s)”,“”,line)
使用正则表达式断言后跟撇号或撇号+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"
正则表达式解释
- 是什么匹配撇号,后跟0或1 s
- (?=(\s |$)#断言什么 后跟只能是空白字符或字符串结尾
re.sub(r“'s”(?!\s)”,'',line)
对于line来说,一个更好的例子是“aaa abcd'xy'sifs farmer's blooper's mouse'd have bbb”
。这增加了一个带有单撇号(应删除)和嵌入的(不应删除)的示例。行的更好示例是“aaa abcd'xy'sifs farmer's blooper's mouse'd's Have bbb”
。这将添加一个带有单个撇号(应删除)和嵌入的(不应删除)的示例。如果最后一个单词以
或结尾该怎么办?是的,`$`修复了它。感谢您指出,修改答案以处理字符串结尾如果最后一个单词以'
或's
结尾该怎么办?是的,`|$``修复了它。感谢您指出这一点,请修改答案以处理字符串结尾