正则表达式是一种专门用于对字符串的操作的规则。
1.在string类中就有一些方法是对字符串进行匹配,切割。
判断字符串是否与给出的正则表达式匹配的:boolean matches( string regex);
按照给定的正则表达式对字符串进行切割的:string[] split(string regex);
将符合正则表达式的字符串替换成我们想要的其他字符串:string replaceall(string regex,string replacement)
2.下面介绍一下正则表达式常用的用法
(1)
这个正则表达式的意思 是:第一个数字应该是1-9中任意的一个,然后紧接着就必须要出现0-9中的数字中的一种,而且这种数字至少要出现4次,至多出现15次
如:
10175 符合
10不符合,因为[0-9]{4,15},至少要出现4次以上,在这里只出现了一次
(2)
[a-za-z0-9_]{6}表示恰好要出现6次a-z或a-z或_ 中的字符
+表示至少出现一次
*表示出现0次或多次
?表示出现一次或0次
(3)根据正则表达式来切割字符串
string regex="\\.";
因为\ 也是特殊符号,所以要两个\\来表示。当我们想要使用普通的 \ 时,那么就要用\\\\来表示才可。
string[] ss=str.split(regex); 返回字符串数组: "sjd" "ksdj" "skdjf" 实现 了对原有字符串的切割
(4)根据正则表达式来替换掉我们想要替换的东西
将字符串中所有连续出现5个或以上的数字串替换成#
string regex="[0-9]{5,}";
string newstr=str.replaceall(regex,"#");
(5)获取符合正则表达式规则的字符串
matcher m=p.matcher(string str);
while(m.find())
{
system.out.println(m.group());
}
3.网页爬虫的制作
我们制作 一个可以将一个网页中的全部的邮箱读取出,并且存放在一个文本文件中。
从网络中获取邮箱地址
*/
import java.io.*;
import java.util.regex.*;
import java.net.*;
class mailtest
{
public static void main(string[] args) throws exception
{
getmailaddr();
}
public static void getmailaddr()throws exception
{
url url=new url("http://bbs.jb51.net/topics/390148495");
urlconnection con=url.openconnection();
bufferedreader bufin=new bufferedreader(new inputstreamreader(con.getinputstream()));
bufferedwriter bufw=new bufferedwriter(new filewriter(new file("e://mailaddress.txt")));
string str=null;
string regex="[a-za-z0-9_]{6,12}@[a-za-z0-9]+(\\.[a-za-z]+)+";
pattern p=pattern.compile(regex);
while((str=bufin.readline())!=null)
{
matcher m=p.matcher(str);
while(m.find())
{
string ss=m.group();
bufw.write(ss,0,ss.length());
bufw.newline();
bufw.flush();
}
}
}
}
如对本文有疑问, 点击进行留言回复!!
springcloud中feign调用处理mybatis-plus Ipage反序列化问题。
Flume 史上最全面的大数据学习第十篇(一) 别再说不知道flume是什么了
网友评论