2

如何将捕获的组与积极的后视相结合?

我想匹配以下示例:

DS
DS,x=y
一些 DS,key=value
一些DS测试,key=value&key2=value2
一些DS测试,key=value&key2=value2|key3=value3

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

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

我发现,我需要插入的正则表达式是:

(?<=\,)

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

4

1 回答 1

0

你是不是想多了?

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

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


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

parts = data.split(',', 2)
if len(parts) == 1:
    title, = parts
else:
    title, filters = parts
于 2012-12-29T14:56:29.770 回答