我在字符串str(dList)中有以下子字符串:
"addressRegion">\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t</span>
我正在尝试使用re.search来推出&#34; MA&#34;用这个:
state = re.search(r'"addressRegion">\n\t\t\t\t\t\t\t\t\t(.+?)\n\t',str(dList))
然而,这似乎并不起作用。我明白这可能是因为&#34; /&#34;被处理。我无法弄清楚如何处理这个问题。
答案 0 :(得分:2)
正则表达真的没有必要
In [22]: str = '<span class="addressRegion">\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t</span>'
In [23]: from bs4 import BeautifulSoup
In [24]: soup = BeautifulSoup(str, 'html.parser')
In [25]: soup.text
Out[25]: u'\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t'
In [26]: soup.text.strip()
Out[26]: u'MA'
答案 1 :(得分:1)
<强>更新强> 如果你真的想使用正则表达式,这就是你可以做的方式,但我认为@ cricket_007的解决方案是更好的方法。
您需要做的就是用另一个反斜杠来逃避反斜杠。你也可以摆脱'\ t'的重复:
>>> s = '"addressRegion">\n\t\t\t\t\t\t\t\t\tMA\n\t\t\t\t\t\t\t\t</span>'
>>> re.search('.*\\n(\\t)+(.*?)\\n(\\t)+.*',s).group(2)
'MA'