专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

正则表达式教程,正则表达式的基本用法

来源:小易整编  作者:小易  发布时间:2023-03-30 09:48
摘要:正则表达式教程,正则表达式的基本用法无论是前端、后端,或者是客户端,还是算法;甚至是普通的非开发的用户,我觉得正则表达式都有必要去学习了解,因为它可以极大的提升我们的工作效率,这点对于开发人员来说可能体会更加深刻,特别是在定位线上问题的时候...

匹配次数规则

利用正则表达式可以匹配指定的字符出现指定的次数,这些正则表达式有以下几个:

正则符号含义
.表示任意单个字符。
\?前面指定的字符出现0次或者1次,就会被匹配到
\+前面指定的字符连续出现至少1次,就会被匹配到
*前面指定的字符连续出现任意次,包括0次,就会被匹配到
\{m, n\}前面指定的字符至少连续出现m次,最多连续出现n次
\{m,\}前面指定的字符至少连续出现m次,就会被匹配到
\{,n\}前面指定的字符最多连续出现n次,就会被匹配到
\{m\}前面指定的字符连续出现m次,就会被匹配到

\?   \+   *

我们先来认识第一一个用于匹配次数的正则符号,它就是*,它表示之前的字符连续出现任意次数。

可以看到,3行都被匹配到了,这里稍微解释下为什么第1行也会被匹配上,"ab*"表示"a"字符后面的"b"字符可以出现任意次,当然包括0次了,第1行被匹配上相当于"b"字符被匹配到了0次。

正则表达式教程,正则表达式的基本用法


好了,我们再看看"\+"这个正则符号,它表示匹配其前面的字符至少1次,还是来看看下面的示例,可以看到第1行没有被匹配上,因为"ab\+"表示的是"a"字符后面的"b"字符至少要出现1次,第1行的字符"a"后面没有"b"字符,所以没有匹配上。

正则表达式教程,正则表达式的基本用法

介绍完了"\+"以及"*",配合上面表格的描述,聪明的你一定也知道了"\?"的用法了,这里就不介绍了,大家可以自己猜想并动手进行实验验证。

{}系列

"\{m}\"表示匹配前面的字符m次。如果我们想要从test1.txt文件中找出哪些行包含两个连续"b",很简单,用"ab\{2\}"匹配即可。如下所示:

正则表达式教程,正则表达式的基本用法

“\{m, n\}”表示之前的字符至少连续出现x次,至多连续出现y次,都可以被匹配到,示例如下,如图所示,"a"后面连续出现2个"b",连续出现3个"b"的行都被匹配到了。

正则表达式教程,正则表达式的基本用法

好了,现在再来看"\{m,\}"和"\{,n\}"相信大家都能理解这2个正则表达式的含义了,这里也不介绍了,留给大家自己思考和实验。

.

在正则表达式中,”.”表示匹配任意单个字符,如下图所示,"a.b"表示"a"和"b"中间包含任意一个单词都会被匹配上,这里需要注意的是:”空格”也算作单个字符,所以,第3行的"3aa bb"也被匹配上了。

正则表达式教程,正则表达式的基本用法

现在问题来了,如下图所示,只想要匹配"a"后面跟着"."字符的行,用"a."去匹配是不行的,它会将"a"后面出现任何字符的行都匹配出,而第2,3行并不是我们想要的结果。

正则表达式教程,正则表达式的基本用法

出现上面结果的原因是因为"."在正则表达式中作为一个正则符号有其特殊的含义了,而我们的需求是需要将其作为普通的字符来对待,解决办法很简单,只需要在前面加上\即可,如下所示:

正则表达式教程,正则表达式的基本用法


常用符号

正则表达式中,用来表达特定含义的常用符号有如下几个:

正则符号含义
[[:alpha:]]匹配任意大小写字母
[[:lower:]]匹配任意小写字母
[[:upper:]]匹配任意大写字母
[[:digit:]]匹配0到9之间的任意单个数字
[[:alnum:]]匹配任意数字或字母
[[:space:]]匹配任意空白字符,包括"空格"、"tab键"等。
[[:punct:]]匹配任意标点符号
[]
匹配指定范围内的任意单个字符,如[agh]表示只要匹配上"a","g", "h"的任意一个都算匹配上。
[^  ]和[]相反,表示指定范围外的任意单个字符


我们先来看看[[:alpha:]]这个符号,在介绍它之前,我们先来看看这样一个需求:需要匹配test1.txt文件中"a"后面出现三个任意字符的行,通过前面的学习,不难写出:

正则表达式教程,正则表达式的基本用法


好了,很棒,但是现在我们改需求了:要求"a"后面出现的三个字符必须是字母,没错,这个需求就可以用[[:alpha:]]这个符号解决,[[:alpha:]]表示匹配任意大小写字母。如下所示:

正则表达式教程,正则表达式的基本用法


可以看出,"a[[:alpha:]]\{3\}"这个正则表达式整体的含义就是:只有a字母后面跟随了3个字母的字符串才会被匹配到,如果a字母后面跟随的3个字符中包含非字母就不会被匹配到。

理解了[[:alpha:]],那么其它的也很容易理解了,这里不过多再解释了,下面给出几个示例,大家对着前面表格的描述,肯定是能理解的。

正则表达式教程,正则表达式的基本用法

正则表达式教程,正则表达式的基本用法


正则表达式教程,正则表达式的基本用法

正则表达式教程,正则表达式的基本用法

正则表达式教程,正则表达式的基本用法

我们再来介绍一个符号“[ ]”,“[ ]”表示匹配指定范围内的任意单个字符,我们还是来看个例子:

正则表达式教程,正则表达式的基本用法

可以看到,上面的例子中,字母a后面跟随字符1或者跟随字符t、或者跟随字符4都可以被匹配到,也就是说"[1t4]"表示1或者t或者4中的任何一个字符都能被匹配到。现在,我想大家应该明白“[ ]”的含义了吧。
需要提到的一点是,如果需要匹配的字符范围比较大,并且是有规律的,其实是不需要将每个字符都写在[]中的,可以用-表示范围,比如:[1-3a-c]表示匹配字符"1","2","3","a","b","c"中的任意一个。
好了,又到了举一反三的时候了,其实前面一些常用的符号如[[:alpha:]]也有另外的表示形式:
正则表达式
等效表达式
[[:alpha:]][a-zA-Z]
[:upper:]][A-Z]
[[:lower:]][a-z]
[[:digit:]][0-9]
[[:alnum:]][a-zA-Z0-9]
以[[:alpha:]]举例如下,正则表达式[[:alpha:]]和[a-zA-Z]匹配的效果是一样的:

本文地址:IT问答频道 https://www.hkm168.com/itwenda/944671_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编
相关文章相关阅读
  • 用U盘轻松实现一键重装系统的小白装机教程

    用U盘轻松实现一键重装系统的小白装机教程

    在现代社会,电脑已经成为人们生活中不可或缺的工具。然而,由于各种原因,我们有时候需要重装电脑系统来解决一些问题或提升性能。但是,对于一些小白用户来说,重装系统可能是一项困难的任务。因此,本文将介绍一款小白一键重装系统的u盘装机教程,帮助小白...

  • 什么是Linux系统中nc命令?nc命令的用法详解

    什么是Linux系统中nc命令?nc命令的用法详解

    这篇文章主要介绍了linux系统中nc命令的基本用法,nc命令非常之强大,这里先简单介绍它用来作端口扫描以及文件传输等的基础使用。功能说明:功能强大的网络工具,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小...

  • 百度智慧课堂怎么使用?百度智慧课堂使用教程

    百度智慧课堂怎么使用?百度智慧课堂使用教程

    百度智慧课堂怎么使用?百度智慧课堂是一款可以再网上带给你丰富的线上学习服务的线上学习软件,很多名师教授在其中免费授课,是很多人在线提升自己的重要渠道,不过很多新用户并不懂得该如何正确使用该软件,下面就由小编为大家带来有关百度智慧课堂的使用教...

  • 数据库的substr函数用法是什么

    数据库的substr函数用法是什么

    数据库的substr函数用法:1、【substr(str,pos,len)】从pos开始的位置,截取len个字符;2、【substr(str,pos)】pos开始的位置,一直截取到最后。数据库的substr函数用法:1、SUBSTR(st...

  • 解析如何解锁iPhone屏幕的教程,帮你解决手机被锁定的问题

    解析如何解锁iPhone屏幕的教程,帮你解决手机被锁定的问题

    你是否曾经遇到过忘记iphone的锁屏密码的情况?或者是否遭遇过熊孩子乱试密码导致iphone被锁定一个小时的情况呢?如果你曾经有类似的经历,需要快速解锁屏幕,那么可以考虑使用苹果屏幕解锁工具。这款工具是专为苹果用户设计的,可以帮助解锁苹果...

  • c语言中pow函数的用法是什么?

    c语言中pow函数的用法是什么?

    在c语言中pow()函数是用来求x的y次幂。x、y及函数值都是double型,其语法为“doublepow(doublex,doubley)”;其中参数“doublex”表示底数;参数“doubley”表示指数。pow()函数...

  • c语言中fun用法详解

    c语言中fun用法详解

    c语言中fun用法详解fun函数是自定义的C/C++语言函数,函数功能多样。该函数名为“函数”英文function的简写,一般在示例和试题中使用,通常在主函数中被调用。C/C++语言中,fun函数通常被主函数所调用。它是指用fun来定义一个...

  • js手机号码正则表达式

    js手机号码正则表达式

    正则表达式(regularexpression)是一个描述字符模式的对象。使用javascript正则表达式可以进行强大的模式匹配和文本检索与替换功能。手机号码正则表达式验证。functioncheckPhone(){var...

  • 周排行
  • 月排行
  • 年排行

精彩推荐