`

正则表达式简介

    博客分类:
  • java
阅读更多
正则表达式
1. 概念
符合一定规则的表达式。

2. 作用
用于专门操作字符串。

3. 特点
用一些特定的符号来表示一些代码操作。这样就简化了书写,所以学习正则表达式就是学习一下特殊符号的使用。

4. 好处
可以简化对字符串的复杂操作。
5. 弊端
符号定义越多,正则越长,则可读性越差

6. 符合介绍


 规则:
(1) 字符
规则 说明
x 校验一个位置上的字符,字符 x
\\ 校验一个位置上的字符,反斜线字符
\0n 校验一个位置上的字符,带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn 校验一个位置上的字符,带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn 校验一个位置上的字符,带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 校验一个位置上的字符,带有十六进制值 0x 的字符 hh
\uhhhh 校验一个位置上的字符,带有十六进制值 0x 的字符 hhhh
\t 校验一个位置上的字符,制表符 ('\u0009')
\n 校验一个位置上的字符,新行(换行)符 ('\u000A')
\r 校验一个位置上的字符,回车符 ('\u000D')
\f 校验一个位置上的字符,换页符 ('\u000C')
\a 校验一个位置上的字符,报警 (bell) 符 ('\u0007')
\e 校验一个位置上的字符,转义符 ('\u001B')
\cx 校验一个位置上的字符,对应于 x 的控制符

(2) 字符类

规则 说明
[abc] 校验一个位置上的字符,指定这位置上的字符只能是a或者b或者c
[^abc] 校验一个位置上的字符,指定这位置上的字符只能是除了a或者b或者c的其他字母
[a-zA-Z] 校验一个位置上的字符,指定这位置上的字符只能是字母,即范围在a-z之间和A-Z之间
[a-d[m-p]] 校验一个位置上的字符,指定这位置上的字符是a到d或m到p即[a-dm-p](并集)
[a-z&&[def]] 校验一个位置上的字符,指定这位置上的字符是d、e 或 f(交集)
[a-z&&[^bc]] 校验一个位置上的字符,指定这位置上的字符是a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] 校验一个位置上的字符,指定这位置上的字符是a 到 z,而非 m 到 p:[a-lq-z](减去)

以上规则只能是校验一个位置上的字符,如[abc]指的是长度为1的字符必须是a或b或c中的一个;如[a-z][0-9]指的是长度为2的字符串,第一个字符必须为小写字母,第二个字符必须为数字。规则中每个[](中括号)只代表一个位置上的字符规则。

(3) 预定义字符
规则 说明
. 任何字符(与行结束符可能匹配也可能不匹配)

\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r][制表符、回车符、女性标识符、换页符、换行符]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9](表示单词字符,及里面包括字母(大小写)、数字、下划线)
\W 非单词字符:[^\w]

以上预定义符的作用是都只是描述一个位置上的字符规则,其目的是为了简化“字符类”规则的写法
其实预定义符都是带反斜杠的\,在java中由于反斜杠会把后面的字符转义了,所以要想匹配成功,就应该写两个反斜杠即\\,将其中的一个反斜杠真实表现出来。

 范围(数量词)

规则 说明
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

其中X表示的是上一节所描述的规则,大括号{}表示范围或数量

其实正则表达式就是由具体字符如字符a、具体字符串如http、字符类规则如[abc]、预定义规则如[\d]的组成,再加上数量词组合而成。其中字符、字符串、规则表示字母应该取值的范围,而数量词则表示字母出现的次数。

7. 具体操作功能
(1) 匹配
String的 matches(String regex)方法,用规则匹配整个字符串,只要有一处不符合规则,则匹配结束,返回false。
(2) 切割
String的split(String regex)方法
如:字符串sdfasd.asdfawe.wewet.ggg则不能直接用“.”来分割这个字符串,必须要使用//. 在正则表达式中两个斜杠加.才表达正则表达式自身的这个点服务号,所以要分割就必须//.来分割字符串sdfasd.asdfawe.wewet.ggg
8. 组
为了可以让规则的结果被重用,可以将规则分装成一个组,用( )将规则括起来,此时组的出现就都有了编号,编号从1开始,想要使用已有的组可以通过\n(n就是组的编号)的形式来获取。如:叠词:wecksgggwsdklqqdsdsdffffasddfyyyyasdd要想按字母相同的截取字符串就得这么设置规则:“.(1)+”;

组和捕获
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
1    ((A)(B(C)))
2    \A
3    (B(C))
4    (C)
组零始终代表整个表达式。

分享到:
评论

相关推荐

    正则表达式简介(微软篇)

    关于正则表达式:正则表达式简介(微软篇)之一正则表达式 &lt;br/&gt;如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 &lt;br/&gt;请回想一下在硬盘上是如何...

    正则表达式简介正则表达式简介

    正则表达式简介正则表达式简介正则表达式简介正则表达式简介正则表达式简介

    JAVA_正则表达式简介

    JAVA_正则表达式简介详解

    C语言正则表达式库

    C语言正则表达式库,兼容perl的正则表达式库,使用简介、方便

    正则表达式简介.pdf

    正则表达式简介.pdf 正则表达式简介.pdf 正则表达式简介.pdf

    expect正则表达式简介

    本人关于expect正则表达式应用的一点总结,因为去翻exploring expect比较费劲,就把正则表达式这常用的内容总结一下记在这了。

    正则表达式调试工具

    正则表达式调试工具V3.0 绿色免费版 此软件用于软件开发正则表达式调试 此软件界面简介,内置经典例程,跨平台。

    精通正则表达式(第三版)中文

    简介:《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式...

    正则表达式基础 Regular Expression

    正则表达式简介  为什么需要正则表达式?  文本的复杂处理。  正则表达式的优势和用途?  一种强大而灵活的文本处理工具;  提供了一种紧凑的、动态的方式,能够以一种完全通用的方式来解决各种字符串...

    正则表达式

    1.2. 正则表达式简介 1、 正则表达式是一个强大的字符串处理工具,可以对字符串进行、查找、提取、分割、替换等操作。它简单而且实用,是一个用于匹配字符串的模板,我们定义的任意的一个字符串都可以看成是一个正则...

    正则表达式经典实例.pdf

    本书讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误...

    JavaScript中的正则表达式简介

    JavaScript中的正则表达式简介

    [精通正则表达式(第3版)]中文版.(美)Jeffrey.E.F.Friedl-part1.rar

    本书自第1版开始着力于教会读者“以正则表达式来思考”,来让读者真正“精通”正则表达式。该版对PHP的相关内容、Java1.5和Java1.6的新特性作了可观的扩充讲解。任何有机会使用正则表达式的读者都会从中获益匪浅。...

    VB正则表达式简介

    希望提供的资料对大家会有所帮助,欢迎大家下载!

    正则表达式经典实例中文版 (美)高瓦特斯

    第1章 正则表达式简介 1.1 正则表达式的定义 1.2 使用正则表达式的工具 第2章 正则表达式的基本技巧 2.1 匹配字面文本 2.2 匹配不可打印字符 2.3 匹配多个字符之 2.4 匹配任意字符 2.5 匹配文本行起始和/或文本行...

    正则表达式及其应用简介.txt

    正则表达式及其应用简介.txt正则表达式及其应用简介.txt正则表达式及其应用简介.txt正则表达式及其应用简介.txt正则表达式及其应用简介.txt正则表达式及其应用简介.txt

    《精通正则表达式(第3版)》作者: [美] Jeffrey E·F·Friedl 译者: 余晟 出版年: 2007年

    随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。本书是讲解正则表达式的经典之作。本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校...

    正则表达式简介,是一部入门级不可多得的好资料。

    正则表达式简介,学习VBSCRIPT正则的入门课程

    正则表达式经典实例

    第1章 正则表达式简介 1.1 正则表达式的定义 1.2 使用正则表达式的工具 第2章 正则表达式的基本技巧 2.1 匹配字面文本 2.2 匹配不可打印字符 2.3 匹配多个字符之一 2.4 匹配任意字符 2.5 匹配文本行起始和/...

Global site tag (gtag.js) - Google Analytics