Java 中replaceAll如何忽略大小写呢?
方式一:在正则表达式前面添加(?i)
@Test public void test_replaceAll1() { String input = "I like Java,jAva is very easy and jaVa is so popular."; String replacement = "cccc"; System.out.println(input); System.out.println(input.replaceAll("(?i)java", replacement)); }
输出结果:
I like Java,jAva is very easy and jaVa is so popular.
I like cccc,cccc is very easy and cccc is so popular.
方式二:使用Matcher 的appendReplacement 方法
@Test public void test_replaceAll2() { String input = "I like Java,jAva is very easy and jaVa is so popular."; String regex = "java"; String replacement = "cccc"; StringBuffer sb = replaceAll2(input, regex, replacement); System.out.println(input); System.out.println(sb); } /*** * replaceAll,忽略大小写 * * @param input * @param regex * @param replacement * @return */ public StringBuffer replaceAll2(String input, String regex, String replacement) { Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(input); StringBuffer sb = new StringBuffer(); boolean result = m.find(); while (result) { m.appendReplacement(sb, replacement); result = m.find(); } m.appendTail(sb); return sb; }
输出结果:
I like Java,jAva is very easy and jaVa is so popular.
I like cccc,cccc is very easy and cccc is so popular.
方式三:使用Matcher 的replaceAll
/*** * replaceAll,忽略大小写 * * @param input * @param regex * @param replacement * @return */ public String replaceAll3(String input, String regex, String replacement) { Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(input); String result = m.replaceAll(replacement); return result; } @Test public void test_replaceAll3() { String input = "I like Java,jAva is very easy and jaVa is so popular."; String regex = "java"; String replacement = "cccc"; String sb = replaceAll3(input, regex, replacement); System.out.println(input); System.out.println(sb); }
输出结果:
I like Java,jAva is very easy and jaVa is so popular.
I like cccc,cccc is very easy and cccc is so popular.
参考:
http://hw1287789687.iteye.com/blog/2150897