Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3查找后面没有子字符串的字符串_Python_Regex_Python 3.x - Fatal编程技术网

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
结尾该怎么办?是的,`|$``修复了它。感谢您指出这一点,请修改答案以处理字符串结尾