具有以下注册表:
str = "RegName1,Regname2,0x00000000,0x100000"
我想使用正则表达式获取此值。
我尝试了一下,但是没有用。
re.match('\s+,\s+,\d+,\d+',str)
注意:我想忽略诸如"//"
,"#"
等之类的评论。
答案 0 :(得分:0)
以这种方式识别您的字段:
import re
text = "RegName1,Regname2,0x00000000,0x100000"
matches = re.match(r"(\w+),(\w+),(\w+),(\w+)", text)
然后,如果您print(matches)
和print(matches[1])
,您将获得:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
<_sre.SRE_Match object; span=(0, 37), match='RegName1,Regname2,0x00000000,0x100000'>
RegName1
不确定如何避免注释行。但是,至少它们不会与正则表达式匹配。例如:
text = "#Some comment"
matches = re.match(r"(\w+),(\w+),(\w+),(\w+)", text)
print(matches)
投掷:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
None
因此,如果您这样做:
if matches is not None:
do something
..他们将被避免。