正则表达式 网页爬虫 2011年10月27号

今天在图书馆听了黑马程序员自学视频第二十五天得视频学习了关于正则表达式的知识,以下是我的笔记:

1要匹配手机号如13xxx,15xxx,18xxx代码如下

 

String tel = "13xxxxxxxxx;"

String telReg = "1[358]\\d{9}";

判断boolean flag = tel.matches(telReg);是则返回true否则返回false

 

2要切割字符串如String str = "dsljeig.asjgioja.asgwgh";

则匹配的字符串是String reg = "\\.";

切割字符串是String [] arr = str.split(reg);

for(String s:arr){

      String str = s;

}

3匹配空格String str = "asetg      awetgw4g      erywyh";

匹配规则:String reg = " +";

判断是否匹配:str.matches(reg);

4匹配String str = "c:adf\\ag\\a.txt";

String reg = "\\\\";

String[] arr = str..split(reg);

5按照叠词进行切割

当你想对一个结果重用是你可以把它封装成一个组

String str = "qwdddqaweeeeeeeaeggdsegsdgsssfewghws";

String reg = "(.)\\1+";//(.)代表任意字符1+代表多个相同的字符(叠词)

String [] arr = str.split(reg);

arr={qw,qaw,dsegsdg,fewghws}

 

6正则表达式(获取)

String str = "ming tian jiu yao fang jia le, shi da jia";

String reg = "<a href="file://\\b[a-z]{3}\\b";//">\\b[a-z]{3}\\b";//取出三个字符的字符串

Pattern p = Pattern.compile(reg);//讲规则封装成对象

Matcher m = p.macher(str);//将正则对象和要作用的字符串相关联,获取匹配器对象

//其实String中的macher方法就是用得Macher中的方法,只不过被string封转后用起来简单,功能单一

while(m.find())

{

      String s = m.group();

}

 7练习

String = “我我我....要要....要...学....学...学学....编....编....编....程...编程”;切换成我要学编程

思路如下

1如果只想知道该字符串是否是对错,使用匹配

2想要将已有的字符串替换成另一个字符串,则使用替换

3想要按照自己的方式将字符串换成多个字符串,则使用切割,获取规则以外的字符串

4想要拿到想要获得字符串则使用或缺,或缺规则之内的字符串

 

具体做法

1先将.去掉

str = str.replaceAll("\\.+"," ");

2再将多个重复的字符转换成一个字符

str = str.replaceAll("(.)\\1+","$1");

 

邮箱匹配模式:String reg = "[a-zA-Z0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";

 

8网页爬虫:获取网页中的邮箱地址

 

public void getHtmlMail(){

      URL = new URL("网页地址");

      URLConnection con = URL.openConnection();

      BufferedReader bufIn = new BufferedReader(new InputStreamReader(con.getInputStream()));

      String line = null;

      String mailreg = "\\w+@\\w+(\\.\\w+)+";

      Pattern p = Pattern.compile(mailreg);

      while((line = bufIn.readLine())!=null){

            Matcher m = p,matcher(line);

            while(m.find()){

                     String s = m.group();

            }

      }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值