匹配撇号单词的正则表达式

2024-05-29 04:54:12 发布

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

我试图创建一个regex来匹配一个在结尾有或没有撇号“s”的单词。在下面的例子中,我想添加一个regex,用regex替换撇号,以匹配一个撇号's'或一个's'。

Philip K Dick's Electric Dreams
Philip K Dicks Electric Dreams

到目前为止,我正在尝试的是下面的内容,但我无法使它正确匹配。这里的任何帮助都很好。谢谢!

Philip K Dick[\'[a-z]|[a-z]] Electric Dreams

Tags: 内容结尾philip单词例子regexdickselectric
2条回答

只需在regex模式中将撇号设置为可选。

就像这样:[a-zA-Z]+\'?s

例如,使用测试字符串:

import re

s1 = "Philip K Dick's Electric Dreams"
s2 = "Philip K Dicks Electric Dreams"

>>> re.findall("[a-zA-Z]+\'?s", s1)
["Dick's", 'Dreams']

>>> re.findall("[a-zA-Z]+\'?s", s2)
['Dicks', 'Dreams']

可以使用regex(\w+)'s来表示后跟's的任何字母。然后你可以用后面紧跟着s的单词替换。

>>> s = "Philip K Dick's Electric Dreams"
>>> re.sub(r"(\w+)'s", r'\1s', s)
'Philip K Dicks Electric Dreams'

相关问题 更多 >

    热门问题