正则表达式捕获引号之间的字符串,特别是当字符串以qu开头时

2024-09-29 19:24:14 发布

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

我有一个字符串如下所示

string= 'Sam007's Helsen007' is a 'good' boy's in 'demand6's6'.

我想提取引号中的字符串

输出应该是这样的

['Sam007's Helsen007', 'good', 'demand6's6']

我写的正则表达式:

re.findall("(?:[^a-zA-Z0-9]*')(.*?)(?:'[^a-zA-Z0-9*])", text)

但这会产生输出

["Sam007's Helsen007", 'good', "s in 'demand6's6"]

当我使用修改正则表达式

re.findall("(?:[^a-zA-Z0-9]')(.*?)(?:'[^a-zA-Z0-9*])", text)

它给了我一个输出:

['good', "demand6's6"]

第二种情况似乎更合适,但如果字符串以引号开头,则无法处理这种情况

我怎么处理这个案子


Tags: 字符串textinrestring情况引号good
1条回答
网友
1楼 · 发布于 2024-09-29 19:24:14
st= "'Sam007's Helsen007' is a 'good' boy's in 'demand6's6'"


print re.findall(r"\B'.*?'\B",st)

使用\Bnon word boundary

输出:["'Sam007's Helsen007'", "'good'", "'demand6's6'"]

如果仔细查看字符串,则需要一个前面有非单词字符的字符串',后面有非单词字符的字符串'

相关问题 更多 >

    热门问题