Python re.sub()负向向后看+;消极展望

Python re.sub()负向向后看+;消极展望,python,regex,negative-lookahead,negative-lookbehind,Python,Regex,Negative Lookahead,Negative Lookbehind,从字符串中删除所有出现的“,除非单词以s结尾, 如果单词以s'或's结尾,则'将保留在中。所有其他事件都将被删除 例如: Andrea's -Stays as is Kids' - stays as is 'Kids' --> Kids Ki'd's' --> Kids' 到目前为止,我想到的是: \'(?!s ) 这与第一个示例匹配并忽略它 其余的我都有问题 '([^'\s]+)' 您可以尝试此操作。替换为\1。请参阅演示 上一个示例与您的描述不匹配。第二个撇号在s之前,

从字符串中删除所有出现的
,除非单词以s结尾, 如果单词以
s'
's
结尾,则
'
将保留在中。所有其他事件都将被删除

例如:

Andrea's -Stays as is
Kids' - stays as is
'Kids' --> Kids
Ki'd's' --> Kids'
到目前为止,我想到的是:

\'(?!s ) 
这与第一个示例匹配并忽略它

其余的我都有问题

'([^'\s]+)'
您可以尝试此操作。替换为
\1
。请参阅演示


上一个示例与您的描述不匹配。第二个撇号在
s
之前,最后一个撇号在
s
之后,因此它们不应该被删除。在
之前?你是说在
s
之前?@Barmar更新了一个示例