使用python进行正则表达式字段提取

Joh*_*ndk 1 regex

我有一个像这样的字符串:

field1:value1 field2:value2

字段可以有空格即."字段名称:"但值字段永远不会有.

使用正则表达式什么是一种简单的方法,在不事先知道字段名称的情况下将字段值对提取到数字组中?

我正在使用python b

谢谢

Tim*_*ker 7

>>> subject = "field name 1:value1 field2:value2  field name3:value3"
>>> d = { match.group(1): match.group(2)
...       for match in re.finditer(r"([^:]+):(\S+)\s*", subject)
...     }
>>> d
{'field name 1': 'value1', 'field2': 'value2', 'field name3': 'value3'}
Run Code Online (Sandbox Code Playgroud)

这是使用使用此正则表达式填充的字典理解:

([^:]+) # one or more characters except :  (--> group(1))
:       # a literal :
(\S+)   # one or more non-whitespace characters (--> group(2))
\s*     # optional trailing whitespace (before the next match)
Run Code Online (Sandbox Code Playgroud)