`

黑马程序员_Java 正则表达式

阅读更多
------- android培训、java培训、期待与您交流! ----------

正则表达式
一、正则表达式基础知识
1、正则表达式是一个由特定字符([ ] { } / + . ?)组成的字符串,本质是Pattern对象
2、正则表达式底层是Pattern对象:就是说正则表达式,如:”[0-9][1-9]{4,14}”,必须首先被编译成Pattern 对象
A regular expression, specified as a string, must first be compiled into an instance of Pattern class.  ---API Document
The resulting pattern can then be used to create a Matcher object that can match arbitrary character sequences against the regular expression. ---API Document
3、Java 语言的正则表达式主要由两个类: Pattern(模式) 和Matcher(匹配器)
Pattern:A compiled representation of a regular expression
Pattern成员方法:参见JDK
Matcher:An engine that performs match operations on a character sequence by interpreting a Pattern
a)、根据Pattern对象产生Matcher对象,一个Pattern对象能产生多个Matcher对象
b)、经典的调用顺序:
// 将由字符串表示的正则表达式进行对象的封装
Pattern p = Pattern.compile(“a*b”);
// 通过Pattern对象的matcher方法和任意字符串关联,获取要对字符串操作的匹配器
Matcher m = p.matcher(“aaaaab”);
// 通过Matcher匹配器对象的方法对字符串进行操作
Boolean b = m.matches();
简略的调用:boolean b = Pattern.matches("a*b", "aaaaab");
是上面三步的缩写,并且只能执行matches 方法1次
c)、Pattern类只能做一些简单的匹配操作,要想得到更强更便捷的正则匹配操作,那就需要将Pattern与Matcher一起合作
二、常用的正则表达式
1、^ 和 $:分别用来匹配整个字符串的开始和结束
“^The”:开头一定要是The字符串
“of despair$”:结尾一定要有of despair的字符串
“notice”:匹配包含notice的字符串,在matchs(),lookingAt(),find()表现不同
“notice”并没有用^和$,说明正则表达式可以出现在被检验字符串的任何地方,因为没有把它锁定到两边
注意:^用在中括号开头的时候,就表示排除括号里面的字符
"^[a-z A-Z]": 匹配以大小写字母开头的字符串
"%[^a-z A-Z]%":匹配含有两个百分号里面有一个非字母的字符串
2、* + ?:用来表示一个字符或一个组出现的次数
* == 出现0次或者更多次 == {0,}
+ == 出现1次或者更多次 == {1,}
? == 出现0次或者1次 == {0,1}
注意:* + ? 只关注它前面那个字符或者组
3、| 相当于or操作
“hi | hello”:匹配含有hi 或者hello的字符集
"(a│b)*c": 匹配含有这样多个(包括0个)a或b,后面跟一个c的字符串
4、\b:匹配单词边界 \B:匹配非单词边界
“ve \b”:匹配love里的ve,而不匹配very里的ve
三、lookaround
需求:在HTML页面中,匹配出一对标签之间的文本,如与之间的文本
文本:welcome to my page
正则表达式:.*? [Tt][Ii][Tt][Ll][Ee]>
结果:【welcome to my page】
期望结果:【welcome to my page】
解决办法:lookaround
1、向前查找(lookahead):指定了一个必须匹配但不在结果中返回的模式
向前查找实际上就是一个子表达式,它以?=开头,需要匹配的文本跟在=的后面
例子:匹配出一个URL地址中协议部分
正则表达式:.+(?=:)
结果:【http】://blog.csdn.net/mhmyqn
若正则表达式:.+:  则匹配结果:【http:】
分析:我们使用?=向正则表达式引擎表明,只要找到:就行了,但不包括在最终的返回结果里。
2、向后查找(lookbehind):?welcome to my page
正则表达式:(?).*?(?= [Tt][Ii][Tt][Ll][Ee]>)
结果:【welcome to my page】
4、对前后查找取非
前面说到的向前查找和向后查找通常都是用来匹配文本,其目的是为了确定将被返回的匹配结果的文本的位置(通过指定匹配结果的前后必须是哪些文本)。这种用法叫正向前查找和正向后查找。还有一种负向前查找和负向后查找,是查找那些不与给定模式相匹配的文本。
前后查找的操作符:
(?=)           正向前查找
(?!)            负向前查找
(?
分享到:
评论

相关推荐

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    java_zhengze.rar_正则表达式_正则表达式 java

    正则表达式是编程语言中用于模式匹配和字符串处理的强大工具,在Java中也不例外。Java的正则表达式功能强大,可以用于验证输入、提取信息、替换文本等多种场景。本资料"java_zhengze.rar"提供了对Java正则表达式的...

    Java使用正则表达式提取XML节点内容的方法示例

    为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...

    使用Java正则表达式分析处理日志

    本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...

    Java正则表达式 Java 正则表达式

    Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...

    java正则表达式匹配工具

    正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地进行文本分析和处理。在Java中,正则表达式的使用主要依赖于`java.util.regex`包中的类,如`Pattern`和`Matcher`。 首先,我们来看`Pattern`类。这个...

    JAVA正则表达式大全

    在Java编程语言中,正则表达式被广泛应用于数据验证、文本提取和字符串操作。以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,...

    Java正则表达式.ppt

    Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...

    Regular_Expression正则表达式手册.zip

    Regular_Expression正则表达式手册.zipRegular_Expression正则表达式手册.zipRegular_Expression正则表达式手册.zipRegular_Expression正则表达式手册.zip

    Java正则表达式介绍和练习

    Java正则表达式介绍和练习Java正则表达式介绍和练习Java正则表达式介绍和练习

    余晟_实战正则表达式

    正则表达式,简称为正则,是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。在计算机编程中,它被广泛应用于数据...熟练掌握正则表达式,对于任何需要处理文本的程序员来说,都是一项非常重要的技能。

    java正则表达式验证IP地址

    Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

    Java正则表达式入门介绍.ppt

    掌握Java正则表达式能够极大地提高文本处理能力,使得程序员能够快速地处理和分析大量文本数据,但同时也需要投入时间学习其语法和使用技巧。在实际开发中,结合测试和调试,开发者可以利用正则表达式实现高效、准确...

    Java正则表达式_动力节点Java学院整理

    Java正则表达式详解 Java正则表达式是Java语言中的一种模式匹配技术,用于匹配、查找、替换和判断字符串。它是一种强大的工具,能够帮助开发者快速处理字符串相关的任务。 什么是正则表达式? 正则表达式是一种...

    try_reg_exp_quicklyskd_测试正则表达式_

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在编程中,正则表达式是一种强大的工具,能够帮助我们高效地处理字符串,检查格式是否...

    java正则表达式验证

    java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效

    Java正则表达式详细讲解

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...

    使用Java正则表达式实现一个简单的身份证号码验证

    ### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...

    Java 正则表达式 图片版

    Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~

Global site tag (gtag.js) - Google Analytics