繁体   English   中英

正则表达式如何解析字符串中的键值对?

[英]Regex How do I parse the Key Value pair in a string?

我正在尝试进行高级搜索,并且我想缩小搜索字符串的范围,并使用要搜索的字段。

示例:文件名:"\\temp location\\files\\here" fileType:html

这应该给我以下组:

  • 文件名:\\临时位置\\文件\\这里
  • 文件类型:html

如何解析键值对,包括带空格的引号内的值?

到目前为止我有正则表达式: (\\w+)\\s?:\\s?([^\\s]+)

这是我到目前为止所拥有的一个例子:

https://regex101.com/r/dJ65e2/3

更新:我能够弄清楚,答案在: https : //stackoverflow.com/a/57225825/978765

如果您知道第一个匹配组将是引号而第二个匹配组将不在引号中,您可以使用两个正则表达式分别查找任一对。 请注意,这两个都希望密钥是一个单词。

(\\w+)\\s?:\\s?"([ \\S]*?)"会给你一个包含括号前任何单词的组,以及一个返回引号中任何内容的组。

(\\w+)\\s?:\\s?([^"\\s]\\S*[^"])将为您提供一个包含括号前的任何单词的组,以及一个返回不在引号中的任何单词的组。

在这里这里试试。

编辑:您可以使用| 运算符同时搜索。

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

在这里试试。

我认为这应该可以解决问题: https : //regex101.com/r/U1zvEd/2

/(\w+)\s?:\s?[\"|']?([^\"|'|\s]+)/g

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM