在 Java (RegEx) 中匹配字符后的每个字符串

Match every single String after character in Java (RegEx)

提问人:MomoTheDev 提问时间:12/11/2021 最后编辑:ChrisMomoTheDev 更新时间:12/11/2021 访问量:77

问:

我需要这方面的帮助,所以嗯......我有一个字符串:

Hey ~firstname ~lastname today is the ~date

我希望程序打印出以下输出:

firstname lastname date

在匹配器的列表中(我已经有办法做到这一点)。我唯一需要的是正则表达式来获得我想要的输出

每一次帮助都会被理解

Java 正则表达 式字符串 匹配

评论

0赞 David Leal 12/11/2021
检查此正则表达式:regex101.com/r/J8QK7A/1

答:

1赞 Tim Biegeleisen 12/11/2021 #1

使用具有模式的匹配器,我们可以尝试:~(\S+)

List<String> matches = new ArrayList<>();
String input = "Hey ~firstname ~lastname today is the ~date";
String pattern = "~(\\S+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
while (m.find()) {
    matches.add(m.group(1));
}
String output = String.join(" ", matches);
System.out.println(output);  // firstname lastname date
0赞 MomoTheDev 12/11/2021 #2

没关系,伙计们,我让它与这种模式一起工作:

(?<=~)\w+

评论

2赞 Tim Biegeleisen 12/11/2021
这不包括 Java 代码,因此不能完全回答您的问题。
1赞 Community 12/11/2021
您的答案可以通过其他支持信息进行改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。