正则表达式(三)-正则表达式的替换

将符合规则的部分,都使用新的字符串来进行替换
注意:只用matcher()函数中,正则表达式只要有一个源字符串中的符号,不满足正则表达式,就会返回false..其他的像分组,替换,不满足正则表达式条件的时候会不停止地去查源字符串.一直查询到源字符串最后
package zhengze;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.omg.CORBA.PUBLIC_MEMBER;

public class str {

/**
* 利用正则表达式的规则定位到要替换的字符的位置.之后用replaceAll函数将所有的符合规则的字符替换成另外一部分
* @param str 代表源字符串
* @param reg 代表正则
* @param newStr 用newStr替换符合正则表达式规则的字符
*/
public static void replaceSllDemo(String str,String reg,String newStr){
str = str.replaceAll(reg, newStr);
System.out.print(str);
}
public static void main(String[] args) {

//要求将字符串中的数字替换成#号
String str = "wer1389980000ty34uiod23456f";

String reg = "\\d{5,}"; //你只要数字的个数超过了5个,我就会把你进行替换
String newStr = "#";
replaceSllDemo(str, reg, newStr);




}
}


现在我想把叠词替换成一个字母
  • 使用$i  可以获取到第i组的结果
package zhengze;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.omg.CORBA.PUBLIC_MEMBER;

public class str {

/**
* 利用正则表达式的规则定位到要替换的字符的位置.之后用replaceAll函数将所有的符合规则的字符替换成另外一部分
* @param str 代表源字符串
* @param reg 代表正则
* @param newStr 用newStr替换符合正则表达式规则的字符
*/
public static void replaceSllDemo(String str,String reg,String newStr){
str = str.replaceAll(reg, newStr);
System.out.print(str);
}
public static void main(String[] args) {

//要求将字符串中的数字替换成#号
String str = "werkktyqqqquizzzzzzzzoi";

String reg = "(.)\\1+";     
String newStr = "$1"; //使用$符号加i,可以获取到第i组的结果
replaceSllDemo(str, reg, newStr);




}
}

你可能感兴趣的:(Java正则表达式)