Python - HTML Body中的正则表达式匹配

时间:2012-01-17 12:44:50

标签: python regex

我需要使用python解析下面文本中的设备时间(即2012-01-17 13:12:09)。你能告诉我如何使用python中的标准正则表达式库来做到这一点吗?感谢。

  <html><head><style type="text/css">h1 {color:blue;}h2 {color:red;}</style>
  <h1>Device #1   Root Content</h1><h2>Device Addr: 127.0.0.1:8080</h1>
  <h2>Device Time: 2012-01-17 13:12:09</h2></body></html>

4 个答案:

答案 0 :(得分:2)

只是添加

import re
pattern = re.compile(r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})')
first_match = pattern.search(html)

答案 1 :(得分:1)

你需要这个正则表达式。

/Device Time: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/

或者,

/Device Time: (\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)/

将此正则表达式与全局开启一起使用。

答案 2 :(得分:1)

试试这个正则表达式

Device Time: ([^<]+)

这将在“设备时间:”之后返回剩余的休息,直到下一个html标记开始。如其他答案所示,您还可以搜索此日期时间的更具体格式。

一般来说,使用正则表达式解析html文件被认为是不好的做法。然而,你的例子更像是解析一些正常文本,恰好是html文件的一部分...在这种情况下,这很好......; - )

答案 3 :(得分:1)

也许是这样的:     导入重新

str = """ Your HTML String here"""

pattern = re.compile(r"""Device Time:([ \d\-:]*)""")
s = pattern.search(str)

time = s.group(1)