初步接触正则表达式

记录一下这两天接触的正则表达式

一、基本知识

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


二、String中涉及到的正则表示式的使用

1.如果只想知道该字符是否是对错,使用匹配       matches();返回布尔类型的值!!!!所以后面的获取没办法使用此方法(整个匹配,一个不合适,后面全部不用)
2.想要将已有的字符串变成另一个字符串,替换     replaceAll();
3.想要安装自定义的方式将字符串变成多个字符串,切割。获取规则以外的子串   split();
4.想要拿到符合需求的字符串子串,获取。  获取符合规则的子串   

由于String 中涉及的正则使用比较简单(String 是继承了matcher类的部分方法),所以当操作比较复杂时,必须把正则封装成对象。
再将对象和操作字符串通过matcher方法进行关联返回Matcher 类,通过Matcher 类中的find(),和group(),方法进行操作。
具体操作
A.将正则表达式封装成对象
B.让正则对象和要操作的字符串相关联
C.关联后,获取正则匹配引擎
D.通过引擎对符合规则的子串进行操作

e.g
import java.util.regex.*;
class ZhenzhiDemo
{
public static void main(String args[])
{
Demo1();
}
public static void Demo1()
{
String reg1 = "\\b[a-z]{2}\\b";

String str = "ni hao wo shi li wei dong";
Pattern p = Pattern.compile(reg1);

Matcher ma = p.matcher(str);

while(ma.find())
{
System.out.println(ma.group());
}

}
}

三、注意

1.由于特殊符号的存在,所以使用正则表达式的时候一定要注意
2.注意组的使用问题

四、使用

1.可以用来从一个文本中筛选需要的信息(比如邮箱,手机号码等等)这也是爬虫的雏形。
e.g(获取文本中的qq邮箱)

import java.util.regex.*;
import java.lang.*;
import java.util.*;
import java.io.*;
class Pa
{
public static void main(String[] args)throws Exception
{
Demo();
}
public static void Demo()throws Exception
{
String reg1 = "\\w+@\\w+.\\w+";
Pattern p = Pattern.compile(reg1);
BufferedReader bf = new BufferedReader(new FileReader("1.txt"));
String s = null;
while((s=bf.readLine())!=null)
{
Matcher ma = p.matcher(s);
while(ma.find())
{
System.out.println(ma.group());
}
}
}
}

猜你喜欢

转载自blog.csdn.net/kunfd/article/details/52859177
今日推荐