正则表达式 数字加1怎么输入

正则表达式 数字加1怎么输入前面最近闲着没事,想给自己找找新的东西学习一下。正则表达式的学习也是一年前就有了萌芽了。正好最近在写QT项目时,对于网络编程中IP地址的合法性的判断中,使用到了正则表达式。QRegExp regExp(“((2[0-4]\\d|25[0-5]|[01]?\\d\

前面

最近闲着没事,想给自己找找新的东西学习一下。正则表达式的学习也是一年前就有了萌芽了。正好最近在写QT项目时,对于网络编程中IP地址的合法性的判断中,使用到了正则表达式。

QRegExp regExp(“((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)”);

当时这一串字符,直接给我整懵了,看得云里雾里的。

于是,趁着这次机会,索性就直接学习一下正则表达式的具体用法吧。毕竟,马上毕业工作中,应该也还是会有机会用到的。

正则表达式到底是什么东西?

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

如果你的电脑上有类似于everything的本地文件搜索工具,那你应该使用过通配符(wildcard),即*和?。*可以匹配任意个数的任意字符。?可以匹配一个任意字符。

比如,我想搜索我电脑上的1.cpp文件。结果如下。

正则表达式 数字加1怎么输入

image-20230507163306033

现在我突然想起我想要的是两个数字的,1结尾的cpp文件,我会这样搜索。

正则表达式 数字加1怎么输入

image-20230507163502001

最后,我还需要将1开头的cpp文件都找出来。

正则表达式 数字加1怎么输入

image-20230507163627121

通过一定的规则,对文件进行搜索,能够从海量的数据中,快速的定位到我们所需要的数据中,这就是匹配的力量。

正则表达式就是一种规则更为复杂,功能更加强大的文本匹配工具。

元字符

正则表达式 数字加1怎么输入

元字符有这么多,但其实常用的不多。刚接触时,先掌握几个使用频率较高的即可。下表是常用元字符:

正则表达式 数字加1怎么输入

例子

匹配QQ号

\d{5,12} 表达式的意思代表,字符串中包含5-12位数字。下面通过一个正则表达式测试的在线网站,对结果进行查验。

正则表达式 数字加1怎么输入

可以发现,这样写的表达式,会匹配出很对结果,只要字符串中,包含5-12位连续的数字,即被匹配上。

但是,对于QQ号而言,是整个字符串只能包含5-12位数字。

故将表达式,改写为这样^\d{5,12}$

正则表达式 数字加1怎么输入

通过^和$控制匹配的开始于结尾,即可得到正确的结果。

转义字符

有过编程经验的小伙伴都转义字符的这个概念,比如我想要查找.这个字符,但是这个字符已经被解释成了其它意思,没法指定它们。这时候可以使用\符号,取消这些字符的特殊意义。比如,如果你要查找.和*,你可以使用\.和\*,当然,要查找\本身,就需要使用\\。、

重复限定符

常用的限定符

正则表达式 数字加1怎么输入

例子

+匹配至少一个

正则表达式 数字加1怎么输入

*匹配任意个数

正则表达式 数字加1怎么输入

字符类

想要查找数字、字母或数字都很容易,可以使用\d和\w,进行匹配。但如果我只想查找特定的字母或者特定的数字时,应该怎么办呢?但是使用方括号[],将需要查找的内容在方括号中列出即可。

例子

搜索wpohf中的任意个一个字母

正则表达式 数字加1怎么输入

搜索[wo4g5?]中的任意字符,这里包含了数字、字符,以及标点符号

正则表达式 数字加1怎么输入

当然我们也可以指定一个范围,如[a-k0-4]

正则表达式 数字加1怎么输入

分支条件

以电话号码为例,区号+本地号,这里存在两种区号格式分别是3位和4位,对应的本地号则为7位何8位。

例:010-12345678,和0153-1234567。其中的连字符-可有可无。

此时,我们为了满足其中任意一种规则的电话号码,都能够匹配,可以使用|符号,将不同的规则分开。

例子:

0\d{2}[-]?\d{8}|0\d{3}[-]\d{7}

正则表达式 数字加1怎么输入

分组

前面提到过,使用{n},代表前面的一个字符重复n次。

正则表达式 数字加1怎么输入

如果想要对多个字符进行重复应该怎么办呢?你可以使用小括号(),将这些字符括起来,在指定它的重复次数,即可。

例子:

以文章开头提到的IP地匹配的表达式为例。((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

正则表达式 数字加1怎么输入

这个表达式的关键是理解2[0-4]\d|25[0-5]|[01]?\d\d?

  • 首先这里有两个|符号,表示有三种分支条件,我们逐个对其进行分析。2[0-4]\d: 表示匹配以2开头后面接着0-4中的任意一个数字,最后加上0-9中的任意数字。具体匹配结果则为:200-249。25[0-5]: 表示匹配以25开头,后面加上0-5中的任意数字。具体匹配结果为:250-255。[01]?\d\d?: 表示匹配前面以0或者1或者没有的数字开头,后面加上任意以1个数字,最后一个数字可有可无。具体匹配结果为:0-199。综上就可以将数字的范围限定在0-255之中,当然这里面的结果是可以包含前导0的。

反义

有时我们可能会需要查找除了某些字符之外的情况,这时候就需要用到反义

常用的反义字符

正则表达式 数字加1怎么输入

其实就是之前的元字符变成对应的大写字母,外加[^]符号。

例子:

\D+ 匹配不是数字的字符

正则表达式 数字加1怎么输入

<a[^>]+> 匹配用尖括号括起来的以a开头的字符串

正则表达式 数字加1怎么输入

后向引用

有时候我们会有搜索重复字符的需求,如果hi hi,这样的字符串,这时,我们就会用到后向引用。

后向引用用于重复搜索前面某个分组匹配的文本。

使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。

例子:

(hi)\b\s+\1

正则表达式 数字加1怎么输入

参考内容

本文主要参考了下面文章的内容

https://deerchao.cn/tutorials/regex/regex.htm#howtouse

https://www.runoob.com/regexp/regexp-rule.html

使用的在线测试网站

https://regex101.com/

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/15369.html

(0)
上一篇 2024年 5月 18日
下一篇 2024年 5月 18日

相关推荐

关注微信