gpt4 book ai didi

java - 具有正向和负向前瞻的正则表达式模式

转载 作者:行者123 更新时间:2023-11-30 01:55:50 27 4
gpt4 key购买 nike

我有一个类似 [key1=value1, key2=value2] 的字符串。它也可能只包含一个键,例如 [key1=value1]或更多的键。如何编写正则表达式来检索

预期

Group1: key1=value1
Group2: key2=value2

我尝试过该模式 /(?<=\[)(.*)=(.*)(,)*(?=\])/ here ,但它给了我

实际

Group1: key1=value1, key2
Group2: value2

最佳答案

您可以使用提取这些键和值对

(\w[^,=]*)=(.*?)(?=]|,\s*\w[^,=]*=)

请参阅regex demo

详细信息

  • (\w[^,=]*) - 第 1 组:单词字符后跟除 =, 之外的 0+ 个字符>
  • = - 一个 = 字符
  • (.*?) - 第 2 组:任何 0+ 个字符(换行符除外),尽可能少,直到最左边出现
  • (?=]|,\s*\w[^,=]*=) - ] 字符或 ,, 0+ 个空格、单词字符,然后是 =, 之外的 0+ 个字符,然后是 =

Java demo :

String s = "[key1=value1, key2=value2, key 3= text,value # 3]";
Pattern pattern = Pattern.compile("(\\w[^,=]*)=(.*?)(?=]|,\\s*\\w[^,=]*=)");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println("Key-value pair found:");
System.out.println(matcher.group(1).trim());
System.out.println(matcher.group(2).trim());
}

输出:

Key-value pair found:
key1
value1
Key-value pair found:
key2
value2
Key-value pair found:
key 3
text,value # 3

关于java - 具有正向和负向前瞻的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54549250/

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