老实说,当谈到更高级或更冗长的正则表达式时,我有点迷茫。我有一个查询字符串,我需要匹配并获取查询参数的值和名称。对我来说困难在于该值可以是不同的值,目前只有 4 个不同的查询参数。这是一个示例查询字符串:
foo title:"Foo Bar" -title:other author: (mitchell* OR mike) from:2012-01-01 to: 2012-06-01
查询参数是标题、作者、从和到。这三个不同的值在双引号“Foo Bar”内,用括号括起来(mitchell* OR mike)或单个值 2012-01-01 或其他。请注意,冒号后面还有一个可选空格。在每个参数名称 -title 之前也可以有一个 + 或 -。标题和作者值可以有通配符。
我目前对解析值不感兴趣,就像我不需要解析(mitchell* 或 mike)来知道其中的内容,只想将其作为一个整体显示。
我如何使用 Regex 解析此字符串以获取与它相关的参数名称的值?
我可以处理如下结果:
['title:"Foo Bar"', '-title:other', 'author: (mitchell* OR mike)', 'from:2012-01-01', 'to:2012-06-01']
我不需要担心没有参数名称的值,例如开头的 foo (可能在字符串中的任何位置),只需要获取参数名称和值。