gpt4 book ai didi

JavaScript/Regex 参数具有不同的值

转载 作者:行者123 更新时间:2023-11-28 02:46:13 26 4
gpt4 key购买 nike

老实说,当涉及到更高级或更冗长的正则表达式时,我有点迷失。我有一个查询字符串,需要匹配并获取查询参数的值和名称。对我来说困难在于该值可以是不同的值,并且目前只有 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)来了解其中的内容一样,只想将其作为一个整体显示。

如何使用正则表达式解析此字符串以获取与其一起的参数名称的值?

我可以处理如下结果:

['title:"Foo Bar"', '-title:other', 'author: (mitchell* OR mike)', 'from:2012-01-01', 'to:2012-06-01']

我不需要担心没有像开头的 foo 这样的参数名称的值(可以在字符串中的任何位置),只需要获取参数名称和值。

最佳答案

约瑟夫是对的。您提供的数据非常困惑,将其放入一个正则表达式中会太复杂,IMO,我能想到的最好方法是应用 3 个不同的表达式,每个表达式对应您要搜索的每种类型:

这将搜索以左括号开头的项目:

-?\w+:\s*\((.*?)\)

这将搜索以双引号开头的项目:

-?\w+:\s*"(.*?)"

这会搜索其他项目(带有空格的项目不起作用):

-?\w+:\s*([^\s"\(]+)

也许有一种更简单的方法,但我就是这样做的。

关于JavaScript/Regex 参数具有不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11831552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com