gpt4 book ai didi

java - java string.replaceAll 方法如何使用正则表达式仅修剪右端?

转载 作者:行者123 更新时间:2023-12-01 11:28:34 26 4
gpt4 key购买 nike

我尝试了两种不同的正则表达式,对我来说似乎都是正确的,但是第一个没有返回正确的输出。

我的问题:我想了解为什么它会给出不同的结果以及正则表达式或其用法有什么问题。

String cleaned_input = "Hello\n\tWorld, Test\\\\\\\\data\\\\\\";

1. String output = cleaned_input.replaceAll("\\+$", "").trim();
2. String output = cleaned_input.replace("[\\\\*]+$", "").trim();

输出1:

Hello
World, Test\\\\data\\\

输出2:

Hello
World, Test\\\\data

最佳答案

这是因为在这个正则表达式中:

"\\+$"

您只是在结束 anchor 之前匹配文字+

第二个正则表达式在行尾之前正确匹配 1 个或多个反斜杠,但在带有 * 的不必要字符类中。第二个正则表达式可以更好地写为:

String output = cleaned_input.replaceAll("\\\\+$", "");

关于java - java string.replaceAll 方法如何使用正则表达式仅修剪右端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30618420/

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