Java 正则表达式 替换字符串中人名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 正则表达式 替换字符串中人名相关的知识,希望对你有一定的参考价值。

String name = "张三丰";用正则表达式变为name= “张XX”,记得是用正则表达式,不是截取字符串!!

public static void main(String[] args)

System.out.println("请输入姓名:");

Scanner in=new Scanner(System.in);

String input=in.nextLine();

//保留姓氏

char str2=input.charAt(0);

//截取名字

String str1=input.substring(1);

//用正则表达式替换(包括汉字,数字,大小写字母)

str1=str1.replaceAll("[^x00-xff]|\\\\w", "x");

//输出替换后的名字

System.out.println(str2+str1);

参考技术A

你的意思是指除了第一个字以外的字都替换成“X”吗

本回答被提问者和网友采纳

java用正则表达式判定特殊字符是不是,存在就替换的问题?

我在String ss = "aabbcc[dd]eeff[gg]hhiijjkkll[mmnn]oopp";这个字符串,用正则表达式把[]这样的特殊字符过滤出来,就是把[dd]替换成dd,原来的字符串里面也变成aabbccddeeff...

String的replaceAll方法可以使用正则表达式进行搜索并替换,但不改变原字符串,如果需要改变原字符串,则需要用赋值语句:
ss=ss.replaceAll("正则表达式","替换内容");
比如将"aabbcc[dd]eeff[gg]hhiijjkkll[mmnn]oopp"里的[等特殊符号去掉:
ss=ss.replaceAll("\W","");
参考技术A 至少有两种正则表达式的方法:

1、直接调用String类的replaceAll(String regex, String replacement)方法

代码:
String ss = "aabbcc[dd]eeff[gg]hhiijjkkll[mmnn]oopp";
ss.replaceAll("[\\[\\]\\\\]", "");//返回结果,可打印或返回
优点:简单
缺点:不具有通用性,需求变动则不适用,例如[dd]替换成DD

2、通过匹配规则来截取字符串

代码:
String ss = "aabbcc[dd]eeff[gg]hhiijjkkll[mmnn]oopp";
//正则表达式,表示由非[、]、、的任意字符构成
String tmp = "[^\\[^\\^\\]^\\.]";
//正则表达式,由5组构成第一组是普通字符串,第二组是"["字符串,第三组是普通字符串,第四组是"]"字符串,第五组是普通字符串
Pattern pattern = Pattern.compile("(" + tmp + "*)(\\[\\)(" + tmp + "*)(\\\\])(" + tmp + "*)");
Matcher matcher = pattern.matcher(ss);
StringBuffer result = new StringBuffer();
while(matcher.find())
result.append(matcher.group(1) + matcher.group(3) + matcher.group(5));

//result就是最终结果。

优点:具有一定的通用性,可自己定制需要的字符串,新字符串可以由原字符串的部分组成,也可与其他字符拼装,能更好满足可重用性,例如需求变更成[dd]替换成DD,代码只需将result.append(matcher.group(1)+matcher.group(3)+matcher.group(5));换成result.append(matcher.group(1)+matcher.group(3).toUpperCase()+matcher.group(5));就能完成

缺点:代码较长

PS:StringBuffer可转化成String再返回
参考技术B [\[\\\]]+

在java中

String ss = ss.replaceAll("[\\[\\\\\\]]+", "");

以上是关于Java 正则表达式 替换字符串中人名的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么替换string中的某个字符

java用正则表达式判定特殊字符是不是,存在就替换的问题?

Java 正则表达式,替换图片,替换数字,和谐用语,复制文件

UE中如何使用正则替换行中部分字符串

Android怎么用正则表达式替换字符串某些字符?

SQL 注释中的 Java 正则表达式查找/替换模式