其他分享
首页 > 其他分享> > 正则表达式速览

正则表达式速览

作者:互联网

在脚本中使用正则表达式可以很方便的对于字符串进行处理,利用不同的组合可以完成很强大的工作,然而一大堆符号看起来很复杂,实际上却很简单。

看下面负责完成匹配的多行重复

^\(.*\)\(\n\1\)\+$

在考虑到正则表达式时,要想到三个问题

匹配啥字符?

正则表达式提供了一种称作元字符的东西,这个就是要匹配的模式。

字符描述等价
[]匹配[]内的任意字符,-表示范围
\d匹配0-9[0-9]
\x匹配16进制[0-9a-fA-F]
\w匹配单词字母[a-zA-Z]
\s匹配空白字符[\t]
^用在[]内表示匹配除了[]内字符以外的字符[]的补集
\D\d 匹配的补集[^0-9]
\X\x 匹配的补集[^0-9a-fA-F]
\W\w匹配的补集[^a-zA-Z]
\S\s 匹配的补集[^\t]
\t匹配tab字符
.匹配任意一个字符

很容易记住\d\x\w对应于数字、十六进制、字母,然而它们对应的大写就是它们的补集

匹配数量?

符号描述
*0-任意个
\+1-任意个
\?0-1个
\{n,m}n-m个
\{n}n个
\{n,}n-任意个
\{,n}0-n个

匹配位置?

符号描述
^匹配行首
$匹配行尾
\<匹配词首
\>匹配词尾

额外的补充

例子

1

^\(.*\)\(\n\1\)\+$

合起来的意思就是匹配多个重复行。注意匹配数量总是作用前一个描述的事情

2

\(a\+\)[^a]\+\1

合起来的意思就是匹配头部和尾部的a字符数量相等,中间字符任意的字符串。

例如aabaa,acccca,但是aaba字符串不匹配,头尾的a不相等。

标签:表示,字符,匹配,正则表达式,补集,速览,任意
来源: https://blog.csdn.net/qq_31568011/article/details/117868028