gpt4 book ai didi

java - 正则表达式处理键值对

转载 作者:行者123 更新时间:2023-11-29 06:06:42 25 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式来处理像这样格式化的键值对字符串

KEY/VALUE KEY/VALUE VALUE KEY/VALUE

一个键可以有多个值,用空格分隔。

我想将一个键值匹配在一起,所以上面字符串的结果是

VALUE
VALUE VALUE
VALUE

我目前有以下作为我的正则表达式

[A-Z0-9]+/([A-Z0-9 ]+)(?:(?!^[A-Z0-9]+/))

但这会返回

VALUE KEY 

作为第一个结果。

最佳答案

在你的否定先行断言中,将 + 更改为 *;否则,您并没有阻止匹配恰好在 / 之前结束,您只是阻止它恰好在后跟 / 的单词之前结束。此外,从您的否定前瞻断言中删除 ^ ;它的意思是“字符串的开头”,因此在这种情况下永远不会匹配。剩下的是:

[A-Z0-9]+/([A-Z0-9 ]+)(?![A-Z0-9]*/)

(我还删除了 (?:...) 符号,因为它在它出现的上下文中没有任何效果。)

也就是说,一种更易于阅读的方法可能是这样的:

[A-Z0-9]+/([A-Z0-9 ]+)( |$)

要求值后跟一个空格(被吞掉)或字符串结尾。由于键后跟 /,它会忽略它们。

关于java - 正则表达式处理键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8304842/

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