本文介绍: 正则表达式(REGEXP ):由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能。区别:①. 正则表达式:匹配的是文章中的字符。②. 通配符:匹配的是文件名。正则表达式分为:基本正则表达式、扩展正则表达式。
一. 正则表达式定义
正则表达式(REGEXP ):由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能。
二. 基本正则表达式
基本正则表达式:①. 元字符
③. 位置锚定
④. 分组和其他
1. 元字符
. #匹配任意单个字符,可以是一个汉字
[] #匹配指定范围内的任意单个字符
[^] #匹配指定范围外的任意单个字符
注意:
. 在 [ ] 中就是.
[:alnum:] #字母和数字
[:alpha:] #代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] #小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] #大写字母
[:blank:] #空白字符(空格和制表符)
[:space:] #包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白
[:cntrl:] #不可打印的控制字符(退格、删除、警铃...)
[:digit:] #十进制数字
[:xdigit:] #十六进制数字
[:graph:] #可打印的非空白字符
[:print:] #可打印字符
[:punct:] #标点符号
w #匹配单词构成部分,等价于[_[:alnum:]]
W #匹配非单词构成部分,等价于[^_[:alnum:]]
S #匹配任何非空白字符。等价于 [^ fnrtv]。
s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]
2. 表示次数
* #匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
.* #任意长度的任意字符,不包括0次
? #匹配其前面的字符出现0次或1次,即:可有可无
+ #匹配其前面的字符出现最少1次,即:肯定有且 >=1 次
{n} #匹配前面的字符n次
{m,n} #匹配前面的字符至少m次,至多n次
{,n} #匹配前面的字符至多n次,<=n
{n,} #匹配前面的字符至少n次
3. 位置锚定
^ #行首锚定, 用于模式的最左侧
$ #行尾锚定,用于模式的最右侧
^PATTERN$ #用于模式匹配整行 (单独一行 只有root)
^$ #空行
^[[:space:]]*$ #空白行
< 或 b #词首锚定,用于单词模式的左侧(连续的数字,字母,下划线都算单词内部)
> 或 b #词尾锚定,用于单词模式的右侧
<PATTERN> #匹配整个单词
4. 分组或其他
分组:() 将多个字符捆绑在一起,当作一个整体处理,如:(root)+
后向引用:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名
方式为: 1, 2, 3, …
1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
二. 拓展正则表达式
1. 表示次数
* #匹配前面字符任意次
? #0或1次
+ #1次或多次
{n} #匹配n次
{m,n} #至少m,至多n次
{,n} #匹配前面的字符至多n次,<=n,n可以为0
{n,} #匹配前面的字符至少n次,<=n,n可以为0
2. 表示分组
() #分组,将多个字符捆绑在一起,当作一个整体处理
1, 2, #向后引用
| #或者
a|b #a或b
C|cat #C或cat
(C|c)at #Cat或cat
原文地址:https://blog.csdn.net/qq_27349729/article/details/134647594
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_30044.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。