python正则表达式提取多行字符串中括号引号中的内容?

新手上路,请多包涵

最近学习python正则表达式,想使用正则表达式提取多行字符串中指定字符串

网上查了好久,网上也有很多人在问,但是都是讲的单行的情况,求大神指点一二

举例:

str = ' jh2kn as.12an sss g2gs.Abc("xxx")asdf;njkasahsda ng2gs.Abc("yyy")'

提取 (" 与 ") 之间的xxx,yyy


我自己做的测试是:

text = ' xxx("https://www.baidu.com/1.pngxxx")'
pattern = r'^(.+)?(".+("))$'

得到的结果:xxx("https://www.baidu.com/1.pngxxx")
其实我只是想得到:https://www.baidu.com/1.pngxxx

很捉急啊

阅读 7.2k
2 个回答

既然只要双引号之间的内容,那就把只给双引号里面的分组。

>>> p= re.compile('.+?"(.+?)"')
>>> p.findall('xxx("https://www.baidu.com/1.pngxxx")')
['https://www.baidu.com/1.pngxxx']
>>> p.findall('jh2kn as.12an sss g2gs.Abc("xxx")asdf;njkasahsda ng2gs.Abc("yyy")')
['xxx', 'yyy']
推荐问题