我想在Python中编写一个简单的正则表达式,从HTML中提取一个数字.HTML示例如下:
Your number is <b>123</b>
Run Code Online (Sandbox Code Playgroud)
现在如何提取"123",即字符串"您的号码是"后的第一个粗体文本的内容?
Yev*_*kiy 54
import re
m = re.search("Your number is <b>(\d+)</b>",
"xxx Your number is <b>123</b> fdjsk")
if m:
print m.groups()[0]
Run Code Online (Sandbox Code Playgroud)
Lev*_*von 23
鉴于s = "Your number is <b>123</b>"此:
import re
m = re.search(r"\d+", s)
Run Code Online (Sandbox Code Playgroud)
会工作并给你
m.group()
'123'
Run Code Online (Sandbox Code Playgroud)
正则表达式在字符串中查找一个或多个连续数字.
请注意,在这种特定情况下,我们知道会有一个数字序列,否则你必须测试返回值re.search()以确保m包含有效的引用,否则m.group()会导致AttributeError:异常.
当然,如果你要处理大量的HTML,你需要认真看看BeautifulSoup - 它就是为了这个而已.BeautifulSoup的整个想法是避免使用字符串操作或正则表达式进行"手动"解析.
muf*_*fel 11
import re
x = 'Your number is <b>123</b>'
re.search('(?<=Your number is )<b>(\d+)</b>',x).group(0)
Run Code Online (Sandbox Code Playgroud)
这将搜索"您的号码是"字符串后面的数字
import re
print re.search(r'(\d+)', 'Your number is <b>123</b>').group(0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87612 次 |
| 最近记录: |