我想在我的网页上找到6位数字:
<td style="width:40px;">705214</td>
我的代码是:
s = f.read()
m = re.search(r'\A>\d{6}\Z<', s)
l = m.group(0)
答案 0 :(得分:2)
如果您只想在>
和<
符号之间找到6位数,请使用以下正则表达式:
import re
s = '<td style="width:40px;">705214</td>'
m = re.search(r'>(\d{6})<', s)
l = m.groups()[0]
请注意使用括号(
和)
来表示捕获组。
答案 1 :(得分:1)
我想你想要这样的东西:
m = re.search(r'>(\d{6})<', s)
l = m.group(1)
\d{6}
周围的()表示结果的子组。
如果您想在>
和<
之间找到多个6位数字串的实例,请尝试以下操作:
s = '<tag1>111111</tag1> <tag2>222222</tag2>'
m = re.findall(r'>(\d{6})<', s)
在这种情况下,m
将为['111111','222222']
。
答案 2 :(得分:1)
您还可以使用前瞻和后视进行检查:
m = re.search(r'(?<=>)\d{6}(?=<)', s)
l = m.group(0)
此正则表达式将匹配6个数字,前面有>
,后跟<
。
答案 3 :(得分:1)
您可能想要检查标记之间的任何空格(制表符,空格,换行符)。 \ s *表示零个或多个空格。
s='<td style="width:40px;">\n\n705214\t\n</td>'
m=re.search(r'>\s*(\d{6})\s*<',s)
m.groups()
('705214',)
解析HTML是一个爆炸。通常,您将文件视为一个长行,删除标记内包含的值之间的前导和尾随空格。也许查看HTML表格解析模块可能会有所帮助,特别是如果您需要解析多个列。
stackoverflow answer using lxml etree 另外,建议使用htmp.parser。值得深思。 (还在学习python提供的模块:))