在python中使用re匹配模式

2024-06-16 13:18:25 发布

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

在我的例子中,我试图在两个特定于模式的模式(name“=>;”)和(“)之间找到一个模式:

In[78]: temp = '"name"=>"Aditya Patel  % _ . -  2015"'
In[79]: res = re.search(r'(name"=>")([\w\s\d]+)',temp)
In[80]: res.group()
Out[80]: 'name"=>"Aditya Patel  '

所以我的输出应该包含这两者之间的所有内容。你知道吗

在上面的例子中

Aditya Patel  % _ . -  2015

谢谢


Tags: nameingtre内容search模式group
3条回答

此方法假定您要查找的引号是输入字符串中的第二个:

s = '"name"=>"Aditya Patel  % _ . -  2015"'
if s.find('=>') > -1:
    print(s.split('=>')[1].strip(' "'))

demo

您可以使用:

print re.search(r'name"=>"([^"]+)',temp).group(1)

或者使用lookback:

print re.search(r'(?<=name"=>")[^"]+',temp).group()

输出:

Aditya Patel  % _ . -  2015

这是你想要的吗

re.search(r'name"=>"([^"]*?)"',temp).group(1)

输出:

'Aditya Patel  % _ . -  2015'

相关问题 更多 >