gpt4 book ai didi

c# - 用于拆分字符串的正则表达式,尊重引号并保留键=值对

转载 作者:行者123 更新时间:2023-11-30 20:30:04 25 4
gpt4 key购买 nike

给定一个输入字符串:

V1 valueA=somethingA Version Data valueB="something longer" "diagnostic data"

我怎样才能得到一个 Regex 查询来将它拆分成如下的组成部分:

[0] V1
[1] valueA=somethingA
[2] Version
[3] Data
[4] valueB="something longer"
[5] "diagnostic data"

我一直在努力恢复我很久以前最后一次使用正则表达式的体验,但这反而让我抓狂。我得到的最接近的是这个表达式:

[\""].+?[\""]|[^ ]+

最佳答案

与其尝试拆分,不如尝试匹配所有你想要的部分。这是原始模式(没有转义):

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

demo

请注意,这是一个通用模式,对于您的特定情况(属性种类),像这样的东西就足够了:

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

要允许等号周围有空格,您还可以这样写:

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

关于c# - 用于拆分字符串的正则表达式,尊重引号并保留键=值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45327286/

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