gpt4 book ai didi

java - 在 Java 中拆分具有特定模式的字符串

转载 作者:行者123 更新时间:2023-12-01 00:05:52 25 4
gpt4 key购买 nike

我正在为包含以下字符串模式的文件编写解析器:

Key : value
Key : value
Key : value
etc...

我能够将这些行一行一行地检索到列表中。我想做的是将每个字符串的键与值分开。我知道有 split() 方法可以接受正则表达式并为我执行此操作,但我对它们非常不熟悉,所以我不知道要将什么正则表达式作为参数提供给 split() 函数。

此外,虽然不在我正在解析的文件的规范中,但我希望该 Regex 也能够识别以下模式(如果可能):

Key: value
Key :value
Key:value
etc...

所以基本上,无论在 : 字符之后/之前/之后和之后是否有空格,我都希望 Regex 能够检测到它。可以实现此目的的正则表达式是什么?

最佳答案

换句话说 split方法应该寻找 :以及它之前或之后的零个或多个空格。

Key: value
^^
Key :value
^^
Key:value
^
Key : value
^^^

在那种情况下split("\\s*:\\s*")应该做的伎俩。

解释:

  • \\s代表任何空格
  • *表示在其之前描述的元素出现一次或多次
  • \\s*表示零个或多个空格。

另一方面,您可能还想查找整个 key:value配对并放置匹配的零件 keyvalue在不同的组中(您甚至可以使用 (?<groupName>regex) 随意命名组)。在这种情况下,您可以使用

Pattern p = Pattern.compile("(?<key>\\w+)\\s*:\\s*(?<value>\\w+)");
Matcher m = p.matcher(yourData);
while(m.find()){
System.out.println("key = " + m.group("key"));
System.out.println("value = " + m.group("value"));
System.out.println("--------");
}

关于java - 在 Java 中拆分具有特定模式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703746/

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