java正则表达式简单使用和网页爬虫的制作代码

米兰地下街

米兰地下街

2016-02-19 09:57

今天图老师小编给大家介绍下java正则表达式简单使用和网页爬虫的制作代码,平时喜欢java正则表达式简单使用和网页爬虫的制作代码的朋友赶紧收藏起来吧!记得点赞哦~

正则表达式是一种专门用于对字符串的操作的规则。

1.在String类中就有一些方法是对字符串进行匹配,切割。

判断字符串是否与给出的正则表达式匹配的:boolean matches( String regex);

按照给定的正则表达式对字符串进行切割的:String[]    split(String regex);

将符合正则表达式的字符串替换成我们想要的其他字符串:String  replaceAll(String  regex,String replacement)

2.下面介绍一下正则表达式常用的用法

(1)
代码如下:

String regex="[1-9][0-9]{4,15}";
//[1-9]表示这个数字只能在1-9内选择
//[0-9]表示这个数字可以是0-9
//{4,15}表示其前面的这个格式的数字可以重复4-15次

这个正则表达式的意思 是:第一个数字应该是1-9中任意的一个,然后紧接着就必须要出现0-9中的数字中的一种,而且这种数字至少要出现4次,至多出现15次

如:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

10175   符合 

10不符合,因为[0-9]{4,15},至少要出现4次以上,在这里只出现了一次

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

(2)

[a-zA-Z0-9_]{6}表示恰好要出现6次a-z或A-Z或_  中的字符

+表示至少出现一次

*表示出现0次或多次

?表示出现一次或0次

(3)根据正则表达式来切割字符串
代码如下:

String str="sjd.ksdj.skdjf";

String regex=".";

注意:  . 在正则表达式中是表式一个任意的字符,是一个特殊的符号。我们想要用.来切割,就必须将其转换为普通字符 用即可。

因为 也是特殊符号,所以要两个来表示。当我们想要使用普通的  时,那么就要用\来表示才可。

String[] ss=str.split(regex); 返回字符串数组: "sjd"  "ksdj"  "skdjf"  实现 了对原有字符串的切割

(4)根据正则表达式来替换掉我们想要替换的东西

将字符串中所有连续出现5个或以上的数字串替换成#
代码如下:

String str="abcd1334546lasjdfldsf2343424sdj";

String regex="[0-9]{5,}";

String   newstr=str.replaceAll(regex,"#");

(5)获取符合正则表达式规则的字符串
代码如下:

Pattern p=Pattern.compile(String regex);

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("https://m.tulaoshi.com");
  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();
   }
  }

 }
}

展开更多 50%)
分享

猜你喜欢

java正则表达式简单使用和网页爬虫的制作代码

编程语言 网络编程
java正则表达式简单使用和网页爬虫的制作代码

java正则表达式应用的实例代码

编程语言 网络编程
java正则表达式应用的实例代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java 正则表达式详解

Web开发
Java 正则表达式详解

java正则表达式验证函数

Web开发
java正则表达式验证函数

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

正则表达式

Web开发
正则表达式

正则表达式口诀 正则表达式学习工具

Web开发
正则表达式口诀 正则表达式学习工具

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win8文件历史记录让你把重要文件备份下来

win8文件历史记录让你把重要文件备份下来

Windows7任务栏相关技巧

Windows7任务栏相关技巧
下拉加载更多内容 ↓