专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

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

来源:小易整编  作者:小易  发布时间: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]匹配的效果是一样的:

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


百科问答
小编:小易整编
相关文章相关阅读
  • 安卓手机怎么刷机教程

    安卓手机怎么刷机教程

    对于大部分安卓手机用户来讲,刷机是不可避免的。可是我们都知道刷机是有一定的风险的,有些用户还是不敢随意的刷机。我们先来了解一下安卓手机怎么刷机?操作方法01先关机,然后按住音量减键,再同时按开机键,即...

  • creo4.0完全自学教程

    creo4.0完全自学教程

    在机械零件设计的众多软件中,PRO/ECREO4.0可以说是很典型的一款设计软件,为设计工程师的工作省了很多的事情,让设计师在设计时更高效。下面一起来看看自觉的基础教程。操作方法01打开CREO4....

  • CEBX电子书制作图文教程

    CEBX电子书制作图文教程

    今天小编在这里介绍一下CEBX的特点和优点,以及怎样制作CEBX的电子书吧~ApabiReaderforiOS是一款新发布的,支持CEBX、PDF及TXT格式图书的电子书阅读器。这款软件有很多独特的功能是针对CEBX格式的图书所特有...

  • 酷我音乐直播在哪里? 酷我音乐观看直播的教程

    酷我音乐直播在哪里? 酷我音乐观看直播的教程

    酷我音乐想要看看直播,今天我们就来看看酷我手机端和电脑端看直播的教程。一、手机端酷我音乐观看直播的方法1、首先手机上要有酷我的软件,点击进入酷我音乐,之后手机页面如图所示2、酷我最上面有“直播”两字,然后点击&ldq...

  • ai海报怎么做(ai海报制作教程图文)

    ai海报怎么做(ai海报制作教程图文)

    阅前叨逼叨hello大家早上好我是大家的好朋友,我叫天天,昨晚翻阅超久才看到野鹿志这个教程,本次教程是用ai结合ps做的,说难不难(貌似很多会psai的人都这样说吧哈哈)说简单吧,其实细节调整也是需要花一点心思的。本次教程的图片多...

  • 绘制一台复古风电视机【PS教程】

    绘制一台复古风电视机【PS教程】

    小编:新手福利来啦!今天带来一个复古风格的旧电视图标临摹教程,图层样式是这次教程的重点。过程细致,步骤具体,新手最好掌握起来。把这个练完,绝对有不一样的收获!这里再次强调一点,图层样式中的参数设置是对应其相应图层的,受图层大小尺寸影响,在不...

  • bilibili直播姬怎么用 哔哩哔哩直播姬使用图文教程

    bilibili直播姬怎么用 哔哩哔哩直播姬使用图文教程

    哔哩哔哩直播姬怎么用?为了能方便广大新手主播快速上手b站的直播系统,哔哩哔哩最近推出了一款一键直播工具bilibili直播姬,这款软件可以让你不用再去设置麻烦的obs不用再去安装弹幕姬插件,软件集成了一切的功能,你想要开播只用点一下开始直播...

  • HostEase注册域名教程

    HostEase注册域名教程

    我们可以在HostEase主机商购买虚拟主机(一般会赠送免费域名),当然也可以注册域名,不过不建议单独注册域名。对于广大新用户来说可能还不清楚注册域名的具体步骤,下面来说说在HostEase注册域名的过程步骤/方法0...

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

精彩推荐