A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史龙贤 黑马帝   /  2012-9-7 00:44  /  1830 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

splitDemo("erkktyqqquizzzzzo","(.)\\1+");//按照叠词完成切割。
String str = "wer1389980000ty1234564uiod234345675f";//将字符串中的数组替换成#。
//replaceAllDemo(str,"\\d{5,}","#");

String str1 = "erkktyqqquizzzzzo";//将叠词替换成$.  //将重叠的字符替换成单个字母。zzzz->z
replaceAllDemo(str1,"(.)\\1+","$1");
疑惑:"(.)\\1+"     ,"\\d{5,}",  ,"(.)\\1+" 看这些符号看不明白,到底表达的是怎么意思?
正则表达式一般是在字符串匹配中用到的,还用在什么地方呢?
     

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
正则经常用于对字符串的匹配、切割、替换、获取,用正则可以省去很多语句的判断,比较方便,对于复杂的正则,阅读性较差。
(.)\\1+ : 加了括号是把前面的字符定义成一个组,组内的字符“.”表示任意字符,可以使字母、数字或任意符号,后面的\\1是要引用前面的组,就是出现重复,+代表至少出现一次,叠词至少要两个相连的字符相同,
对于\\d{5,},\\d在正则里表示数字0-9,{5,}表示这个数字至少出现了5次。
“$1",用在替换的时候,表示继续引用上前面分组的字符,数字1表示地址,引用前面第一组字符。
回复 使用道具 举报
正则表达式一般用于提取字符串,或者检查字符串的正确性
.表示可以匹配除换行符以外的任何字符
\1代表分组1匹配的文本
+则匹配重复1次或更多次。
\表示转义符
{5,}表示匹配大于等于5个
\d表示匹配一位数字
建议你下个正则表达式手册看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马