正则表达式捕获具有正面观察背景的群体(python)

时间:2012-12-29 14:18:42

标签: python regex

如何将捕获的组合与正面观察结合起来?

我想匹配以下示例:

DS
DS,x=y
Some DS,key=value
Some DS test,key=value&key2=value2
Some DS test,key=value&key2=value2|key3=value3

我提出了以下正则表达式来匹配除逗号之外的所有内容:

^(?P<ds_title>[\w \|\-\=\&æøåÆØÅ]+)(?P<filters>[\w \|\-\=\&æøåÆØÅ]+)?$

我已经想到,我需要插入的正则表达式是:

(?<=\,)

但我无法弄清楚在哪里插入它。无论我插入它,它似乎都会破裂。有谁知道如何正确地做到这一点?

1 个答案:

答案 0 :(得分:0)

你不是在想这个吗?

^(?P<ds_title>[^,]+)(?:,(?P<filters>.+))?$

为什么不允许任何字符串,而不是将其限制在列表中?


事实上,为什么要使用正则表达式?

parts = data.split(',', 2)
if len(parts) == 1:
    title, = parts
else:
    title, filters = parts