“Python匹配”组

2024-09-26 04:44:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在创建一个匹配组来使用python从一个字符串中提取两个值时遇到了困难

以下是我的意见:

# SomeKey: Value Is A String

我希望能够使用python match group/regex语句提取SomeKey和{}。以下是我目前所掌握的情况

^{pr2}$

Tags: 字符串stringisvaluematchgroup情况语句
2条回答

必须提供要匹配的字符串:

import re
line = "# SomeKey: Value Is A String"
mg = re.match(r"# ([^:]+): (.*)", line)

>>> print mg.group(1)
SomeKey
>>> print mg.group(2)
Value Is A String

或者,要自动获取键和值的元组,可以执行以下操作:

^{pr2}$

DEMO

对于名字,您可以:

mg = re.match(r"# (?P<key>[^:]+): (?P<value>.*)", line)
print mg.group('key')

DEMO

除非您的实际用例更加复杂,否则您可以使用findall将值直接解压到相应的变量中:

import re
line = "# SomeKey: Value Is A String"
key, val = re.findall(r"# (.*?): (.*)$", line)[0]
# (key, val) == ('SomeKey', 'Value Is A String')

相关问题 更多 >