我想在文件中搜索与此模式匹配的数字:
<a href="test/?n=451484" >
然后获取数字451484
:
我使用这种模式:
'
(test/?n=)
\d+
'
但这不起作用?
答案 0 :(得分:1)
3次更改
转义?
将d+
包裹在paranthesis
在test\?n=
使用示例
>>> import re
>>> str='<a href="test/?n=451484" >'
>>> re.findall(r'test/\?n=(\d+)', str)
['451484']
答案 1 :(得分:0)
要搜索文字?
字符,您需要使用\
转义它。 ?
是正则表达式中的特殊字符,不能(通常)单独使用。
pattern = r"test/\?n=(\d+)"
答案 2 :(得分:0)
或者,您可以使用专业工具:
BeautifulSoup
)urlparse
提取网址参数值示例:
import re
from urlparse import urlparse, parse_qs
from bs4 import BeautifulSoup
data = """
<div>
<a href="test/?n=451484">link</a>
</div>
"""
soup = BeautifulSoup(data)
# filtering links with a specific "href" attribute value
link = soup.find('a', href=re.compile(r'test/\?n=\d+'))
url = link['href']
query = urlparse(url).query
print parse_qs(query)['n'][0] # prints 451484