【问题标题】:Match word before and after colon匹配冒号前后的单词
【发布时间】:2019-04-04 19:35:27
【问题描述】:

我有以下字符串: "FIELDS--> FIELD1: \r\n FILED2: \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(':')

【问题讨论】:

  • @WiktorStribiżew 几乎可以完美运行。如果值有点和破折号,我该如何处理?
  • 谢谢!如果您发布答案,我会接受。

标签: python regex


【解决方案1】:

你可以使用

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

请参阅regex demo

详情

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

【讨论】:

  • 解释很有帮助。我希望可以投票两次。
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 2020-05-11
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
相关资源
最近更新 更多