gpt4 book ai didi

java - 正则表达式匹配 $ 符号后跟任何单词并保留单词

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:11 26 4
gpt4 key购买 nike

我正试图为此提出一个正则表达式模式,但无济于事。以下是我需要的一些示例。 [] 表示一个数组作为输出。

输入

Hello $World

输出

[$World]

输入

My name is $John Smith and I like $pancakes

输出

[$John, $pancakes]

我设法想出了这个,它匹配模式但不保留它找到的单词。

String test = "My name $is John $Smith";
String[] testSplit = test.split("(\\$\\S+)");
System.out.println(testSplit);

输出

[My name ,  John ]

如您所见,它完全吞没了我需要的词,更具体地说,是与模式匹配的词。我怎样才能让它返回一个只包含我需要的单词的数组? (如示例所示)

最佳答案

split 采用一个正则表达式,并专门拆分该正则表达式周围 的字符串,这样它拆分的内容就不会保留在输出中。如果你想让它找到的东西 split ,你应该使用 Matcher 类,例如:

String line = "My name $is John $Smith";
Pattern pattern = Pattern.compile("(\\$\\S+)");
Matcher matcher = pattern.matcher(line);

while (matcher.find()) {
System.out.println(matcher.group(1));
}

这将在一个字符串中找到一个模式的所有匹配项并将它们打印出来。这些是 split 将用来分割字符串的相同字符串。

关于java - 正则表达式匹配 $ 符号后跟任何单词并保留单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45726273/

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