

17、正则表达式_10965183的技术博客_51CTO博客
source link: https://blog.51cto.com/gavenlee/5470166
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

17、正则表达式
原创REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意思,而表示控制或通配的功能,类似通配符,但和通配符不同,通配符是对文件名进行处理,而正则表达则是处理文本中的内容。
正则表达式命令支持:vim、sed、less、grep、awk等
正则表达式分为两类:基本正则表达式(BRE)、扩展正则表达式(ERE)
正则表达式的元字符分类:字符匹配、匹配次数、位置锚定、分组
基本正则表达式
. 代表任意单个字符

[abc] 匹配指定abc范围内任意单个字符

[^abc]匹配abc范围外的任意单个字符

[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符

* 匹配前面的字符任意次
.* 任意长度的任意字符
\? 匹配前面的字符0或者1次
\+ 匹配前面的字符至少1次
\{n} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\}匹配前面的字符至多n次,无下限
\{n,\}匹配前面的字符至少n次,无上限


^ 行首锚定
$行尾锚定
^pattern$ 匹配整行 ^$空行
^[[:sapce:]]*$ 空白行
\< 或 \B 词首锚定
\> 或 \b 词尾锚定
\<PATTERN\>匹配整个单词





将多个字符捆绑在一起,当做一个整体处理
后向引用:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为\1,\2,\3,...
\1代表从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符





a\|b a或者b
C\|cat C或者cat
\(C\|c\)at Cat或者cat



扩展正则表达式
主要去去除基础表达式中的\
和基本表达式相同
* 匹配前面的字符任意次
? 匹配前面的字符0或者1次
+ 匹配前面的字符至少1次
{n} 匹配前面的字符n次
{m,n} 匹配前面的字符至少m次,至多n次
^ 行首锚定
$行尾锚定
^pattern$ 匹配整行 ^$空行
^[[:sapce:]]*$ 空白行
\< 或 \B 词首锚定
\> 或 \b 词尾锚定
\<PATTERN\>匹配整个单词
()分组 应用 \1 \2 \3
| 或者 (C|c)at cat或者Cat
- 1赞
- 收藏
- 1评论
- 分享
- 举报
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK