2

我想用另一个字符串替换字符串的一部分。例如,一个字符串进来,它包含meat,但我希望它把它meat改成vegetable. 我知道我可以用以下语句做到这一点。

str = str.replaceAll("meat", "vegetable");

但是,我需要有确切的大小写。无论示例中的字母是大写还是小写,我都在寻找一种方法meat

我的应用程序是 Minecraft 的过滤器。要么发誓,要么只是定制菜单。就像我想替换单词的每个实例一样minecraft,无论大小写如何Best game Ever!!

我已经对其进行了修改,以便它可以识别和替换特定的大写字母,但这是非常有限的。

我希望我提供了足够的信息,以便有人可以帮助我。

4

3 回答 3

10

(?i)您可以通过在开始时添加标志来使正则表达式不区分大小写

str = str.replaceAll("(?i)meat", "vegatable");

例子

System.out.println("aBc def".replaceAll("(?i)abc","X")); // out: "X def" 
于 2013-02-26T23:34:35.223 回答
4

的第一个参数replaceAll是一个正则表达式,您可以在表达式中嵌入一个标志以使其不区分大小写:

str = str.replaceAll("(?i)meat", "vegatable");
于 2013-02-26T23:35:34.813 回答
4

另一种方式:这里的标志不是明确地在正则表达式中,而是作为单独的参数传递。

String input = "abc MeAt def";
Pattern pattern = Pattern.compile("meat", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(input);
String output = matcher.replaceAll("vegetable");
System.out.println(output);
于 2013-02-26T23:36:18.497 回答