正则表达式
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)
组零始终代表整个表达式。
分享到:
相关推荐
VB正则表达式简介 VB正则表达式是指在Visual Basic语言中应用的正则表达式技术。正则表达式是用来描述一个字符串模式的表达式,可以用来测试字符串是否与某个模式匹配,替换文本,根据模式匹配从字符串中提取一个子...
关于正则表达式:正则表达式简介(微软篇)之一正则表达式 <br/>如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 <br/>请回想一下在硬盘上是如何...
一、正则表达式简介 正则表达式是指一个模式串,它由一些特殊的符号和字符组成,用于描述一个字符串的模式。Java中提供了对正则表达式的支持,使得开发者可以使用正则表达式来匹配和提取字符串中的内容。 二、XML...
本人关于expect正则表达式应用的一点总结,因为去翻exploring expect比较费劲,就把正则表达式这常用的内容总结一下记在这了。
### 正则表达式简介 正则表达式是一种强大的文本处理工具,能够帮助我们在文本数据中执行复杂的查找、替换和提取操作。其主要应用领域包括文本搜索、数据验证和数据清洗等。正则表达式的语法由一系列用于描述字符串...
### 正则表达式简介 #### 一、正则表达式的历史与发展 正则表达式是一种强大且灵活的工具,用于在文本数据中查找、替换和管理字符串模式。它的历史可以追溯到20世纪50年代,最初由美国数学家斯蒂芬·克莱恩...
#### 一、正则表达式简介 正则表达式是一种用于匹配字符串中字符组合的工具。它由一个或多个字符及特殊的字符元组成,能够帮助我们执行复杂的字符串搜索和替换任务。在Oracle数据库中,正则表达式的应用非常广泛,...
正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助开发者进行字符串搜索、替换等操作。通过定义一组复杂的搜索模式,正则表达式可以精确地匹配文本中的特定模式或结构,从而极大地提高了文本处理...
#### 一、正则表达式简介 正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助我们完成对字符串的搜索、替换等操作。它广泛应用于各种编程语言中,如JavaScript、Python等。通过简单的规则定义复杂...
正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,通过`java.util.regex`包提供了对正则表达式的支持。 ### 2. 邮箱地址验证 在实际...
### Lucene 使用正则表达式 #### 知识点概览 1. **Lucene简介** 2. **正则表达式(regex)在Lucene中的应用** 3. **regexQuery详解** 4. **示例代码解析** 5. **索引创建与查询流程** 6. **正则表达式的语法** #### ...
#### 二、Java正则表达式简介 Java提供了强大的正则表达式支持,主要通过`java.util.regex`包中的`Pattern`和`Matcher`类来实现。`Pattern`类用于编译正则表达式字符串,而`Matcher`类用于执行与字符串的匹配操作。 ...
Java中的正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换操作。正则表达式由特殊字符和普通字符组成,它们共同定义了一个特定的搜索模式。 首先,我们来看英文句点符号(`.`)。在正则...
正则表达式简介 正则表达式的主要功能是对大量文本进行搜索、匹配、替换、筛选等操作。它通过计算机语言来实现这些操作,从而提高文本处理的效率和准确性。 正则表达式符号以及含义 正则表达式中有许多特殊符号,...
#### 一、正则表达式简介 正则表达式是由一系列普通字符和元字符(Meta-character)组成的特殊字符串,用于描述和匹配一组字符串的抽象模式。在Unix系统中,正则表达式主要分为两种形式: 1. **基本正则表达式**...
#### 一、正则表达式简介 正则表达式是一种由普通字符(例如字符 `a` 与数字 `5`)和特殊字符(称为元字符)组成的文字模式。它主要用于定义搜索模式,可以在字符串或更复杂的数据结构中进行复杂的查找和替换操作。...
#### 正则表达式简介 正则表达式是一种用于描述文本模式的强大工具。在JavaScript中,正则表达式的功能主要通过`RegExp`类实现。这种工具允许开发者进行复杂的模式匹配操作,比如查找、替换以及验证文本数据。 ###...