在冒号之前和之后匹配单词

时间:2018-10-31 15:15:17

标签: python regex

我有以下字符串: “字段–>字段1:\ r \ n字段2:\ r \ nSOURCEFIELDS-> KEY1:VALUE1,KEY2:VALUE2,KEY3:VALUE3 \ r \”

我想要上述字符串中的以下内容:

[FIELD1, ]
[FIELD2, ]
[KEY1, VALUE1]
[KEY2, VALUE2]
[KEY3, VALUE3]

因此,如果该值为空,我仍然想要该值。有时它将为空,而有时则不会。字段的数量也可能会有所不同。

我尝试过:

x= 'FIELDS--> FIELD1:  \r\n FILED2: \r\nSOURCEFIELDS--> KEY1: VALUE1, KEY2: VALUE2, KEY3: VALUE3\r\n'
   x.split(':')

1 个答案:

答案 0 :(得分:2)

您可以使用

re.findall(r'(\w+) *:(?: *([\w.-]+))?', x)

请参见regex demo

详细信息

  • (\w+)-第1组:一个或多个单词字符
  • *:-0个或多个空格和一个:
  • (?: *([\w.-]+))?-的可选序列
    • *-0个或更多空格
    • ([\w.-]+)-第2组:一个或多个单词,.-字符。