正则表达式REGULAR EXPRESSIONS

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正则表达式Regular Expressions

作用:字符串处理器

从Unix开始流行,Perl语言的流行源于对正则表达式的处理

用途:

1.字符串的匹配

(a)

“abc”匹配“...”

String类中有matches()方法,涉及到Pattern类

(b)

[]——中括号表示取值的域

{}——大括号表示取值的个数

但是为什么又要套来套去呢?

分析:

1.

Pattern p=pile("a*b");

编译构成一个规范(正则表达式)对象

2.

Matcher m=p.matcher("aaaaab");

Pattern对象调用方法,测试内容是否匹配规范,返回Matcher对象3.

p(m.matches())

类似于System.out.println的功能

后面定义了一个接受对象(万物皆对象)的结果输出函数

注意:该方法是static静态的,在类加载的同时加载,可以在类的内部直接调用如下代码也可以,但是要经过一层输出语句

2.字符串的查找

建立在匹配

3.字符串的替换

建立在查找

输出:a----a

到Pattern类中查看

例子:

升级,规定位置

Matcher的方法

find()

寻找符合正则表达式的子串

matches()

正则表达式匹配整个字符串

分析一个字符串,分析到哪,就吃到哪,吐不出来

lookingAt()

每次找都是首字符开始找

reset()

重置匹配器,也就是将matches吃掉的字符吐出来,原先该什么样,就什么样

start()

end()

找匹配的起始和结束位置(索引)

如果没有找到的,就会报Exception

group()

分组——同时输出

应用:

用于有定位地抓取数据

1.网页中email地址的抓取——相当于蜘蛛程序

坑死一逼的:天杀的,咋就给忘了!

2.代码统计空行、代码行、注释行

修改:

注释:

这里不添加成:

因为readline方法已经将\n去除掉了

添加功能:

文件夹下有文件夹,应用递归方法查询认识字符

.*+?……

到Pattern类中查看

例子:

范围

3取交集

认识\s\w\d

当用正则表达式时,都要用两个\\替代,避免\\成\,后面在正则

表达式中\’’又成了转义特殊字符了

注意:后面括号中的值就是正则表达式

边界处理

\b单词边界,像space(空格)、\t、\r等等特殊字符都算是

空白行

练习:

本身,空格也算是字符。联系System.out.println(“”+18)的加号两边就有空格Email地址的正则表达式

除了使用{}内置个数,也可以使用+号,但是这样会导致范围界限不清楚。呈现出

例如:

1.IP地址是否正确

2.从网页中揪出email地址

贴吧中邮箱地址的群发

3.从网页中揪出链接等

类:

ng.String

2.java.util.regex.Pattern

3.java.util.regex.Matcher

Qulifiers——限定,修饰

贪婪:

懒惰:

占有的:

非捕获组

不是一个组,只是简单的限定

……还有很多

向前引用

Flag简写

相关文档
最新文档