如何搜索问号和/或正则表达式?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