匹配次数规则
利用正则表达式可以匹配指定的字符出现指定的次数,这些正则表达式有以下几个:
正则符号 | 含义 |
. | 表示任意单个字符。 |
\? | 前面指定的字符出现0次或者1次,就会被匹配到 |
\+ | 前面指定的字符连续出现至少1次,就会被匹配到 |
* | 前面指定的字符连续出现任意次,包括0次,就会被匹配到 |
\{m, n\} | 前面指定的字符至少连续出现m次,最多连续出现n次 |
\{m,\} | 前面指定的字符至少连续出现m次,就会被匹配到 |
\{,n\} | 前面指定的字符最多连续出现n次,就会被匹配到 |
\{m\} | 前面指定的字符连续出现m次,就会被匹配到 |
\? \+ *
我们先来认识第一一个用于匹配次数的正则符号,它就是*,它表示之前的字符连续出现任意次数。
好了,我们再看看"\+"这个正则符号,它表示匹配其前面的字符至少1次,还是来看看下面的示例,可以看到第1行没有被匹配上,因为"ab\+"表示的是"a"字符后面的"b"字符至少要出现1次,第1行的字符"a"后面没有"b"字符,所以没有匹配上。
介绍完了"\+"以及"*",配合上面表格的描述,聪明的你一定也知道了"\?"的用法了,这里就不介绍了,大家可以自己猜想并动手进行实验验证。
{}系列
"\{m}\"表示匹配前面的字符m次。如果我们想要从test1.txt文件中找出哪些行包含两个连续"b",很简单,用"ab\{2\}"匹配即可。如下所示:
.
常用符号
正则表达式中,用来表达特定含义的常用符号有如下几个:
正则符号 | 含义 |
[[:alpha:]] | 匹配任意大小写字母 |
[[:lower:]] | 匹配任意小写字母 |
[[:upper:]] | 匹配任意大写字母 |
[[:digit:]] | 匹配0到9之间的任意单个数字 |
[[:alnum:]] | 匹配任意数字或字母 |
[[:space:]] | 匹配任意空白字符,包括"空格"、"tab键"等。 |
[[:punct:]] | 匹配任意标点符号 |
[] | 匹配指定范围内的任意单个字符,如[agh]表示只要匹配上"a","g", "h"的任意一个都算匹配上。 |
[^ ] | 和[]相反,表示指定范围外的任意单个字符 |
我们先来看看[[:alpha:]]这个符号,在介绍它之前,我们先来看看这样一个需求:需要匹配test1.txt文件中"a"后面出现三个任意字符的行,通过前面的学习,不难写出:
好了,很棒,但是现在我们改需求了:要求"a"后面出现的三个字符必须是字母,没错,这个需求就可以用[[:alpha:]]这个符号解决,[[:alpha:]]表示匹配任意大小写字母。如下所示:
理解了[[:alpha:]],那么其它的也很容易理解了,这里不过多再解释了,下面给出几个示例,大家对着前面表格的描述,肯定是能理解的。
正则表达式 | 等效表达式 |
[[:alpha:]] | [a-zA-Z] |
[:upper:]] | [A-Z] |
[[:lower:]] | [a-z] |
[[:digit:]] | [0-9] |
[[:alnum:]] | [a-zA-Z0-9] |
本文地址:百科问答频道 https://www.neebe.cn/wenda/944671_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!