使用正则表达式读取特定格式

时间:2018-10-30 13:28:07

标签: python python-3.x

具有以下注册表:

str = "RegName1,Regname2,0x00000000,0x100000"

我想使用正则表达式获取此值。

我尝试了一下,但是没有用。

re.match('\s+,\s+,\d+,\d+',str)

注意:我想忽略诸如"//""#"等之类的评论。

1 个答案:

答案 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

..他们将被避免。