正則表示式(十二)——字串的替換
阿新 • • 發佈:2018-12-12
1、查詢字串中的字串
package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegularTest { public static void main(String[] args) { /** * 字串的替換 replacement */ Pattern pattern = Pattern.compile("java"); Matcher matcher = pattern.matcher("java Java JAVa JaVa I love JAVA you hate Java"); // 查詢所有的Java while (matcher.find()) { pri(matcher.group());// 只有一個java } } public static void pri(Object object){ System.out.println(object); } }
2、忽略大小寫
package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegularTest { public static void main(String[] args) { /** * 字串的替換 replacement * 使用compile(String regex, int flags)方法 * CASE_INSENSITIVE 大小寫不敏感,忽略大小寫 */ Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher("java Java JAVa JaVa I love JAVA you hate Java"); /** * 查詢所有的Java,結果是: * java * Java * JAVa * JaVa * JAVA * Java */ while (matcher.find()) { pri(matcher.group()); } } public static void pri(Object object){ System.out.println(object); } }
3、替換成大寫
package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegularTest { public static void main(String[] args) { /** * 字串的替換 replacement * 使用compile(String regex, int flags)方法 * CASE_INSENSITIVE 大小寫不敏感,忽略大小寫 */ Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher("java Java JAVa JaVa I love JAVA you hate Java"); // 替換所有的Java為大寫 pri(matcher.replaceAll("JAVA"));// 列印結果:JAVA JAVA JAVA JAVA I love JAVA you hate JAVA } public static void pri(Object object){ System.out.println(object); } }
4、單數個替換為大寫,雙數個替換為小寫
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/**
* 字串的替換 replacement
* 使用compile(String regex, int flags)方法
* CASE_INSENSITIVE 大小寫不敏感,忽略大小寫
*/
Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("java Java JAVa JaVa I love JAVA you hate Java tail");
// 單數個替換為大寫,雙數個替換為小寫
StringBuffer buffer = new StringBuffer();
int i = 0;
while (matcher.find()) {
i++;
if (i%2==0) {
matcher.appendReplacement(buffer, "java");
} else{
matcher.appendReplacement(buffer, "JAVA");
}
}
pri(buffer);// 結果:JAVA java JAVA java I love JAVA you hate java,沒有結尾的tail
matcher.appendTail(buffer);// 新增最後的字串
pri(buffer);// 結果:JAVA java JAVA java I love JAVA you hate java tail
}
public static void pri(Object object){
System.out.println(object);
}
}