我有一个字符串如下所示
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"]
第二种情况似乎更合适,但如果字符串以引号开头,则无法处理这种情况
我怎么处理这个案子
使用
\B
即non word boundary
输出:
["'Sam007's Helsen007'", "'good'", "'demand6's6'"]
如果仔细查看字符串,则需要一个前面有非单词字符的字符串
'
,后面有非单词字符的字符串'
相关问题 更多 >
编程相关推荐