如何将捕获的组合与正面观察结合起来?
我想匹配以下示例:
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 \|\-\=\&æøåÆØÅ]+)?$
我已经想到,我需要插入的正则表达式是:
(?<=\,)
但我无法弄清楚在哪里插入它。无论我插入它,它似乎都会破裂。有谁知道如何正确地做到这一点?
答案 0 :(得分:0)
你不是在想这个吗?
^(?P<ds_title>[^,]+)(?:,(?P<filters>.+))?$
为什么不允许任何字符串,而不是将其限制在列表中?
事实上,为什么要使用正则表达式?
parts = data.split(',', 2)
if len(parts) == 1:
title, = parts
else:
title, filters = parts