gpt4 book ai didi

java - 使用正则表达式解析字符串

转载 作者:行者123 更新时间:2023-12-01 18:26:32 25 4
gpt4 key购买 nike

我有一个用于路由键的String:

"key modifier path.to.routing.key;"
  • “key”始终存在(我不需要存储这部分)
  • “修饰符”(一个单词)可以出现 0 次或多次(我需要存储修饰符)
  • "path.to.routing.key" 是实际的键,并且始终是该行的最后一个组成部分,后跟“;”可能有 0 个或多个“.”路由键中的字符,但始终至少为 1 个单词(我需要存储这部分)。

该字符串将在文件中与其他不感兴趣的文本独占一行[所以我不能只使用String.split("");]。我计划使用 regex Pattern 来使用:

Pattern p = Pattern.compile("...pattern...");

我是 java regex 新手,需要一些帮助,

如何使用 Pattern 将此 String 分隔为其组件?

<小时/>

一些示例(如果有帮助的话):

key public direct routing.key;
key direct routingkey;

最佳答案

使用 s。在这里,我捕获了您的修饰符和键,请参阅此正则表达式匹配:

^key (\w+(?: \w+)*) ([\w.]++);$
MATCH 1: [Group 1: public direct] [Group 2: routing.key]
MATCH 2: [Group 1: direct] [Group 2: routingkey]

这是一个regex demo .

然后您可以使用 .split("") 来拆分修饰符。

<小时/>

作为代码:

Pattern pattern = Pattern.compile("^key (\\w+(?: \\w+)*) ([\\w.]++);$", Pattern.MULTILINE);
Matcher matcher = pattern.matcher("key public direct routing.key;\nkey direct routingkey;");
while (matcher.find()) {
for (final String modifier : matcher.group(1).split(" "))
System.out.println(modifier);
System.out.println(matcher.group(2));
}

这是一个online code demo !

关于java - 使用正则表达式解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25949663/

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