加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 22:22:42 所属栏目:百科 来源:网络整理
导读:正则表达式 : 符合一定规则的表达式。 作用:用于专门操作字符串。 特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。 所以学习正则表达式,就是在学习一些特殊符号的使用。 好处:可以简化对字符串的复杂操作。 弊端:符号定义越多,正则越长

正则表达式:符合一定规则的表达式。
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。
所以学习正则表达式,就是在学习一些特殊符号的使用。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。

具体操作功能:
1,匹配:Stringmatches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false
2,切割:Stringsplit();
3,替换:StringreplaceAll(regex,str);如果regex中有定义组,可以在第二参数中通过$符号获取正则表达式中的已有的组。

classRegexDemo
{
publicstaticvoidmain(String[]args)
{
//demo();
//System.out.println((char)11);
//checkTel();


//splitDemo("zhangsan.lisi.wangwu",".");
//splitDemo("c:abca.txt","");


//splitDemo("erkktyqqquizzzzzo","(.)1+");//按照叠词完成切割。为了可以让规则的结果被重用
//可以将规则封装成一个组。用()完成。组的出现都有编号。
//1开始。想要使用已有的组可以通过n(n就是组的编号)的形式来获取。


Stringstr="wer1389980000ty1234564uiod234345675f";//将字符串中的数组替换成#

//replaceAllDemo(str,"d{5,}","#");


Stringstr1="erkktyqqquizzzzzo";//将叠词替换成$.//将重叠的字符替换成单个字母。zzzz->z
replaceAllDemo(str1,"(.)1+","$1");



}


publicstaticvoidreplaceAllDemo(Stringstr,Stringreg,StringnewStr)
{
str=str.replaceAll(reg,newStr);


System.out.println(str);
}

publicstaticvoidsplitDemo(Stringstr,Stringreg)
{

//Stringreg="+";//按照多个空格来进行切割
String[]arr=str.split(reg);
System.out.println(arr.length);
for(Strings:arr)
{
System.out.println(s);
}
}


publicstaticvoidcheckTel()
{
Stringtel="16900001111";
StringtelReg="1[358]d{9}";
System.out.println(tel.matches(telReg));
}


publicstaticvoiddemo()
{
Stringstr="b23a23456789";


Stringreg="[a-zA-Z]d*";


booleanb=str.matches(reg);
System.out.println(b);
}
publicstaticvoidcheckQQ()
{
Stringqq="123a454";


Stringregex="[1-9]d{4,14}";


booleanflag=qq.matches(regex);
if(flag)
System.out.println(qq+"...isok");
else
System.out.println(qq+"...不合法");


}




publicstaticvoidcheckQQ_1()
{
Stringqq="1882345a0";


intlen=qq.length();


if(len>=5&&len<=15)
{
if(!qq.startsWith("0"))//Integer.parseInt("12a");NumberFormatException
{
try
{
longl=Long.parseLong(qq);
System.out.println("qq:"+l);
}
catch(NumberFormatExceptione)
{
System.out.println("出现非法字符.......");
}


}
else
{
System.out.println("不可以0开头");


}
}
else
{
System.out.println("长度错误");
}
}

}

经典案例网页爬虫


importjava.io.*;
importjava.util.regex.*;
importjava.net.*;
importjava.util.*;
classRegexTest2
{
publicstaticvoidmain(String[]args)throwsException
{
getMails_1();
}


publicstaticvoidgetMails_1()throwsException
{
URLurl=newURL("http://192.168.1.254:8080/myweb/mail.html");


URLConnectionconn=url.openConnection();


BufferedReaderbufIn=newBufferedReader(newInputStreamReader(conn.getInputStream()));

Stringline=null;


Stringmailreg="w+@w+(.w+)+";
Patternp=Pattern.compile(mailreg);





while((line=bufIn.readLine())!=null)
{
Matcherm=p.matcher(line);
while(m.find())
{
System.out.println(m.group());
}
}
}



publicstaticvoidgetMails()throwsException
{
BufferedReaderbufr=
newBufferedReader(newFileReader("mail.txt"));

Stringline=null;
Stringmailreg="w+@w+(.w+)+";
Patternp=Pattern.compile(mailreg);

while((line=bufr.readLine())!=null)
{
Matcherm=p.matcher(line);
while(m.find())
{
System.out.println(m.group());
}
}
}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读