gpt4 book ai didi

java - 重复的正则表达式

转载 作者:行者123 更新时间:2023-12-01 07:42:13 24 4
gpt4 key购买 nike

如何解析如下字符串:

name1="val1"    name2="val2"    name3="val3"

我无法使用split(\s+),因为它可以是name = "val 1"。我正在做java,但是任何语言都可以。

最佳答案

这是用 Java 编写的,正则表达式略有不同,捕获组将名称/值对放入 Map<String,String> 中。 .

Matcher.find() 的用法在 while循环是典型的。

    import java.util.*;
import java.util.regex.*;
//...

String pattern = "(\\w+)\\s*=\\s*\"([^\"]*+)\"";

String text = "name1 = \"val 1\" name2=\"val2\" name3=\"val3\"";
System.out.println(text);
// name1 = "val 1" name2="val2" name3="val3"

Matcher m = Pattern.compile(pattern).matcher(text);
Map<String,String> map = new HashMap<String,String>();
while (m.find()) {
map.put(m.group(1), m.group(2));
}
System.out.println(map);
// {name3=val3, name1=val 1, name2=val2}

API 链接

正则表达式.info 链接

关于java - 重复的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814507/

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