1

我不擅长正则表达式,我需要帮助来替换字符串。

String str = "Name_XYZ_";
       str = "XYZ_NAME_";

那么如何用空字符串替换"Name_""_NAME_"从上面的两个字符串中替换?条件"Name"可以在任何情况下,并且可以在index 0或在任何索引处,但preceded by "_".

到目前为止,我尝试过,

String replacedString = str.replaceAll("(?i)Name_", ""); // This is not correct.

这不是家庭作业。我正在处理需要这种处理的 XML 文件。

4

2 回答 2

1
String replacedString = str.replaceAll("(?i)(?:^|_)name_", "");

你很亲密。您需要做的是 name到字符串的开头(带有^需要一个下划线。我也更改Namename,因为如果您无论如何都对模式不区分大小写,为什么要混合小写和大写。请注意,这?:只是一种优化(也是一种很好的做法)。它会抑制在这种情况下不需要的捕获。

如果你想提高你的正则表达式技能,我强烈推荐这个教程

于 2012-12-07T23:04:17.777 回答
-1

我正在使用 .NET 的正则表达式而不是 Java 的,但在这种情况下(_?Name_)应该可以工作。

于 2012-12-07T23:06:34.153 回答