如何搜索问号和/或正则表达式?python
我要在文件中搜索与此模式匹配的数字:如何搜索问号和/或正则表达式?python,python,html,regex,python-2.7,html-parsing,Python,Html,Regex,Python 2.7,Html Parsing,我要在文件中搜索与此模式匹配的数字: <a href="test/?n=451484" > 但这不起作用?要搜索文字?字符,需要使用\对其进行转义?是正则表达式中的特殊字符,不能(通常)单独使用 pattern = r"test/\?n=(\d+)" 3变化 退出? 将d+包装在包装中 在test\?n= 示例用法 >>> import re >>> str='<a href="test/?n=451484" >'
<a href="test/?n=451484" >
但这不起作用?要搜索文字
?
字符,需要使用\
对其进行转义<代码>?是正则表达式中的特殊字符,不能(通常)单独使用
pattern = r"test/\?n=(\d+)"
3变化
- 退出
?
- 将
包装在包装中d+
- 在
test\?n=
>>> import re
>>> str='<a href="test/?n=451484" >'
>>> re.findall(r'test/\?n=(\d+)', str)
['451484']
>>重新导入
>>>str=''
>>>关于findall(r'test/\?n=(\d+),str)
['451484']
或者,您可以使用专用工具:
- 用于解析HTML数据的HTML解析器(例如,)
- 提取url参数值的步骤
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
重新导入
从URLPRASE导入URLPRASE,解析
从bs4导入BeautifulSoup
data=”“”
"""
汤=美汤(数据)
#筛选具有特定“href”属性值的链接
link=soup.find('a',href=re.compile(r'test/\?n=\d+'))
url=link['href']
query=urlparse(url).query
打印解析(查询)['n'][0]#打印451484
谢谢你的回答,但是为什么我要用parantisis来包装d+?@david只有在我的示例中使用findall
时才需要它。findall保存捕获组并打印它们,从而忽略匹配的test..
并根据需要仅打印数字
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