Java replaceAll不区分大小写

Java 中replaceAll如何忽略大小写呢?

方式一:在正则表达式前面添加(?i)

Java代码  

  1. @Test  
  2.     public void test_replaceAll33(){  
  3.         String input = "I like Java,jAva is very easy and jaVa is so popular.";  
  4.         String replacement="cccc";  
  5.   
  6.         System.out.println(input);  
  7.         System.out.println(input.replaceAll("(?i)java", replacement));  
  8.     }  

 测试结果:

 

 

方式二:使用Matcher 的appendReplacement 方法

Java代码  

  1. @Test  
  2.     public void test_replaceAll(){  
  3.         String input = "I like Java,jAva is very easy and jaVa is so popular.";  
  4.         String regex = "java";  
  5.         String replacement="cccc";  
  6.           
  7.         StringBuffer sb =replaceAll2(input, regex, replacement);  
  8.         System.out.println(input);  
  9.         System.out.println(sb);  
  10.   
  11.     }  
  12.     /*** 
  13.      * replaceAll,忽略大小写 
  14.      * @param input 
  15.      * @param regex 
  16.      * @param replacement 
  17.      * @return 
  18.      */  
  19.     public StringBuffer replaceAll2(String input,String regex,String replacement){  
  20.          Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);  
  21.             Matcher m = p.matcher(input);  
  22.             StringBuffer sb = new StringBuffer();  
  23.             boolean result = m.find();  
  24.             while (result)  
  25.             {  
  26.                 m.appendReplacement(sb, replacement);  
  27.                 result = m.find();  
  28.             }  
  29.             m.appendTail(sb);  
  30.             return sb;  
  31.     }  

 测试结果:

 

 

方式三:使用Matcher 的replaceAll

Java代码  

  1. /*** 
  2.      * replaceAll,忽略大小写 
  3.      *  
  4.      * @param input 
  5.      * @param regex 
  6.      * @param replacement 
  7.      * @return 
  8.      */  
  9.     public String replaceAll3(String input, String regex, String replacement) {  
  10.         Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);  
  11.         Matcher m = p.matcher(input);  
  12.         String result = m.replaceAll(replacement);  
  13.         return result;  
  14.     }  
  15.   
  16.     @Test  
  17.     public void test_replaceAll3() {  
  18.         String input = "I like Java,jAva is very easy and jaVa is so popular.";  
  19.         String regex = "java";  
  20.         String replacement = "cccc";  
  21.   
  22.         String sb = replaceAll3(input, regex, replacement);  
  23.         System.out.println(input);  
  24.         System.out.println(sb);  
  25.   
  26.     }  

 测试结果:

参考:http://hw1287789687.iteye.com/blog/2150892 

时间: 2024-10-28 13:30:51

Java replaceAll不区分大小写的相关文章

java-Android上String.replaceAll与Java replaceAll结果不同

问题描述 Android上String.replaceAll与Java replaceAll结果不同 public static int checkSecurity(String pwd) { return pwd.replaceAll("(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+", "$1$2$3$4$5").length(); } public static void main(String[] args) { Syste

java replaceAll转换有问题

问题描述 java replaceAll转换有问题 F:imgTb300008taobaotaobao2.jpg转换成 /imgTb/300008/taobao/taobao2.jpg replaceAll("\\", "/") replaceAll("F:", "")为什么不好用啊! 解决方案 只能替换掉 '\' 字符 为 '/' 解决方案二: public static void main (String[] args)

求教java replaceAll正则表达式写法

问题描述 有一段文字,里面包含类似 src="http://xxx.com/sports/2011-02/17/121091074_4.jpg" align="center"/>的字符串,其中121091074是id. 现在想把形如 121091074加_加数字加.jpg或者.JPG 的文字替换成 121091074_4ln.jpg 这样的形式(jpg不替换,保留大小写形式).想用replaceAll来替换,不知道正则咋写,请教了.谢谢 问题补充:andily

Java中replace、replaceAll和replaceFirst函数的用法小结_java

首先概述一下他们三个的用法: · replace(CharSequence target, CharSequence replacement) ,用replacement替换所有的target,两个参数都是字符串. · replaceAll(String regex, String replacement) ,用replacement替换所有的regex匹配项,regex很明显是个正则表达式,replacement是字符串. · replaceFirst(String regex, String

浅谈java中replace()和replaceAll()的区别_java

replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串): 2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号; 相同点:都是全部替换,即把源字符串中的某一字符

Java基础-01总结概述,dos,功能键,path

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:计算机概述(了解) (1)计算机(2)计算机硬件(3)计算机软件系统软件:window,linux,mac应用软件:qq,yy,飞秋(4)软件开发(理解)软件:是由数据和指令组成的.(计算器)开发:就是把软件做

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

Java基础-02总结关键字,标识符,注释,常量进制,变量数据类型

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:关键字(掌握) (1)被Java语言赋予特定含义的单词(2)特点:全部小写.(3)注意事项:A:goto和const作为保留字存在.B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记 /*关键

java和php基础部分相同或异同

拿着JAVA参考书,一章一章的走过 目前先整理这么多 风.fox 编程范式: Java:纯面向对象的语言,有人说过:Java中一切皆对象!当然咯,人们都忘了Java的八种基本数据类型:int.double.boolean.byte.float. long.short.char.但是念在每个Java每个基本数据类型都有包装类(int的包装类是Integer)的基础上,就姑且认为一切是对象吧. PHP:即使用可面向对象的方式编程,又可使用面向过程的方式.这种两种编程范式结合的语言代表了计算机语言以后