replaceAll()中正则表达式的应用

(?i): 忽略大小写;
(?m): 在这种模式下,'^'和'$'分别匹配一行的开始和结束. 缺省为匹配整个字符串的开始和结束;
(?s): 在这种模式下,表达式'.'可以匹配任意字符,包括表示 一行的结束符。默认情况下,表达式'.'不匹配行的结束符。

测试代码:
String fromStr = "Limited\n\n this is a limited CDB clear";
System.out.println(fromStr.replaceAll("(?i)limIted", "full"));
System.out.println(fromStr.replaceAll("(?m)(?i)limIted", "full"));
System.out.println(fromStr.replaceAll("Limited.", "full"));
System.out.println(fromStr.replaceAll("(?s)Limited.", "full"));
System.out.println(fromStr.replaceAll("(?s)(?i)Limited.", "full"));
System.out.println(fromStr.replaceAll("(?m)Limited$", "full"));
System.out.println(fromStr.replaceAll("Limited$", "full"));

运行结果:
full

this is a full CDB clear
full

this is a full CDB clear
Limited

this is a limited CDB clear
full
this is a limited CDB clear
full
this is a fullCDB clear
full

this is a limited CDB clear
Limited

this is a limited CDB clear




另外3种以后用到再试:
(?x): 在这种模式下,匹配时会忽略(正则表达式里的)空格字符(注:不是指表达式里的"\\s",而是指表达式里的空格,tab,回车之类)。注释从#开始,一直到这行结束。可以通过嵌入式的标志来启用Unix行模式。
(?u): 在这个模式下,如果你还启用了CASE_INSENSITIVE标志,那么它会对Unicode字符进行大小写不明感的匹配。默认情况下,大小写不明感的匹配只适用于US-ASCII字符集。
(?d): 在这个模式下,只有'\n'才被认作一行的中止,并且与'.','^',以及'$'进行匹配。

你可能感兴趣的:(replaceAll())