`

正则表达式之<四>重复匹配

 
阅读更多
1、有多少个匹配
(1)匹配一个或多个字符
在给定字符(或字符集合)后面加上一个+字符作为后缀,即可以匹配一个或多个字符(至少一个,不匹配零个字符)。

当‘+’‘.’在字符集合里使用,可以不转义,在普通字符中必须转义

tips:
在给一个字符集合加上+后缀的时候,必须把+放在字符集合的后面,比方说[0-9]+是正确的
,[0-9+]则不是。
但是实际上[0-9+]也是一个合法的正则表达式,但他匹配的不是一个或者多个数字。他定义了一个由数字0-9和+构成的字符集合,因此只能匹配单个数字或加号

(2)匹配零个或多个字符
在给定字符(或字符集合)后面加上一个*字符作为后缀,即可以匹配零个或多个字符

(3)匹配零个或一个字符
在给定字符(或字符集合)后面加上一个?字符作为后缀,即可以匹配零个或一个字符
ex:
如何表示:http://,https://
regex:
https?:// 或者 http[s]?://

tips:

?等价于{0,1}
+等价于{1,}


2、匹配的重复次数
使用{和}字符来给出需要匹配的重复次数——把数值写在{}之间

{}也是元字符,需要转义

(1)为重复匹配次数设定一个精确的值:ex:{3} 重复3次

(2)为重复匹配次数设定一个区间:ex:{2,4}  最少2次,最多4次

(3)匹配至少重复多少次:ex:{3, } 最少重复3次

3、防止过度匹配
在 *, +, {n,},后加上?,就可以变成最少匹配。


先来盘鲜果--上案例:如何构造一个电子邮件的正则表达式?
text@text.text

开始你可能会写成这样:
\w@\w\.\w
这种写法没有任何实际的用处,因为它只能匹配a@b.c形式的电子邮件。只有单个字符嘛。

于是我们改成这样
\w+@\w+\.\w+

Send personal email to ben@forta.com or 
ben.forta@forta.com. For questions about a
book use support@forta.com. If your message
is urgent try ben@urgent.forta.com. Feel
free to send unsolicited email to
spam@forta.com (wouldn't it be nice if it
were that simple,huh?).


匹配结果:




.的部分我们没有匹配起来,所以改成
[\w.]+@[\w.]+\.\w+

结果




tips:
[\w.]在集合中.不需要转义他的写法与[\w\.]是一样的。
分享到:
评论

相关推荐

    正则表达式 到 NFA

    这是编译原理的一个实验, 是把一个正则表达式转化为不确定有穷自动机NFA的算法程序,朋兴趣的朋友可以下载来看看哦.&lt;br&gt; 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式...

    正则表达式--递归匹配与非贪婪匹配

    例如,在`&lt;script language='vbscript'&gt;&lt;/script&gt;`中,使用非贪婪匹配的正则表达式可以确保正确提取出`vbscript`作为`language`属性的值。 ### 结论 递归匹配和非贪婪匹配都是正则表达式中非常重要的特性。递归...

    <<正则表达式系统教程>>

    教程首先会介绍正则表达式的基本概念和语法,包括字符类(如点号"."匹配任意单个字符,星号"*"表示重复零次或多次)、量词(如"+"表示一次或多次,"?"表示零次或一次)、分组与捕获(使用括号"()"定义分组,并可以...

    >>>正则表达式详解<<<

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种简洁而强大的语法来定义一系列字符或字符模式,帮助我们快速查找、提取、...

    易语言正则表达式类匹配中文

    正则表达式是用于匹配字符串模式的一种强大工具,它使用特定的语法来描述字符串的特征,如单个字符、字符集、重复次数等。在易语言中,正则表达式类提供了多种方法来操作和分析字符串: 1. **创建**:创建正则...

    正则表达式系统教程

    索引&lt;br/&gt;&lt;br/&gt;1._引子&lt;br/&gt;2._正则表达式的历史&lt;br/&gt;3._正则表达式...全部符号解释&lt;br/&gt;6._部分例子&lt;br/&gt;7._正则表达式匹配规则&lt;br/&gt;&lt;br/&gt;7.1_基本模式匹配&lt;br/&gt;7.2_字符簇&lt;br/&gt;7.3_确定重复出现&lt;br/&gt;&lt;br/&gt;8._参考文献

    使用正则表达式检测字符串中重复出现的词

    在IT领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。在本示例中,我们将讨论如何利用正则表达式来检测字符串中重复出现的词。这个功能在数据清洗、文本分析、日志...

    正则表达式教学资料

    前言&lt;br&gt;&lt;br&gt;正则表达式是烦琐的,...全部符号解释&lt;br&gt;6._部分例子&lt;br&gt;7._正则表达式匹配规则&lt;br&gt;&lt;br&gt;7.1_基本模式匹配&lt;br&gt;7.2_字符簇&lt;br&gt;7.3_确定重复出现&lt;br&gt;&lt;br&gt;8._参考文献 &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;上一页 下一页 &lt;br&gt;

    正则表达式(一)从初学到精通正则表达式

    本文将用&lt;&lt;regex&gt;&gt;来表示一段具体的正则表达式。一段文本就是最基本的模式,简单的匹配相同的文本。 不同类型的正则表达式引擎 正则表达式引擎是一种可以处理正则表达式的软件。通常,引擎是更大的应用程序的一...

    正则表达式在数据库查询中的应用

    正则表达式是一种强大的文本匹配工具,它可以简洁地表示复杂的搜索模式。通过使用正则表达式,可以简化上述例子中的SQL查询语句。例如,同样的查询可以使用如下语句完成: ```sql SELECT * FROM Tablel WHERE name ...

    qt正则表达式测试工具

    正则表达式是一种特殊的文本字符串,用于描述复杂或重复的文本模式。它们在搜索、替换、数据提取等任务中非常有用。在Qt中,QRegExp类提供了对正则表达式的支持,包括构造、匹配、替换等功能。 1. **QRegExp构造**...

    qt使用正则表达式限制lineEdit的输入,对正则表达式进行了封装,可以直接引入,工程编译正常

    在Qt框架中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员以结构化的方式匹配、查找、替换或验证字符串。本项目针对Qt的lineEdit组件,通过正则表达式实现了输入限制功能,使得lineEdit...

    正则表达式(Deelx版)|正则表达式(Deelx版)支持库

    正则表达式(Deelx版)是一种强大的文本处理工具,它允许程序员和用户通过预定义的模式来匹配、查找、替换或者分析字符串。Deelx版是专门为提高正则表达式性能和功能而设计的一个支持库,适用于各种编程语言和应用场景...

    Java 正则表达式学习

    在Java编程中,正则表达式是一种非常实用且强大的工具,用于处理字符串模式匹配与搜索替换等操作。通过本篇文章,我们将快速入门Java中的正则表达式,并掌握其基本用法。 #### 二、基础知识 在开始之前,我们需要...

    正则表达式.rar || 正则表达式.rar

    正则表达式,简称为正则,是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。在计算机科学和编程领域,正则表达式是处理文本的基础,广泛应用于数据验证、搜索、替换和提取等多种场景。下面将详细...

    正则表达式系统教程.CHM

    &lt;p&gt;&lt;a href="mk:@MSITStore:C:Documents%20and%20Settingschenxh桌面dsfCHM.chm::/9.htm#7.1_基本模式匹配"&gt;&lt;font size="2"&gt;7.1_基本模式匹配&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;br /&gt;&lt;a href="mk:@MSITStore:C:Documents%...

    正则表达式生成工具,正则表达式生成工具

    正则表达式(Regular Expression,简称regex)是一种用于匹配字符串的强大工具,广泛应用于文本处理、数据验证、搜索和替换等场景。在编程语言中,正则表达式通常以字符串的形式存在,通过特定的语法和模式来定义...

    常用java正则表达式

    句点符号(`.`)是正则表达式中最基础的元素之一,它代表任意单个字符。例如,`t.n`可以匹配所有以`t`开头、以`n`结尾且中间只有一个字符的字符串,如`tan`、`ten`、`tin`等。需要注意的是,句点符号匹配范围广泛,...

    IP地址的正则表达式

    整个表达式重复四次,每次后面跟着一个点号和下一个表达式,最后的表达式后面没有点号,因为这是最后一个数字部分。 ### 应用场景 正则表达式在实际应用中非常广泛,特别是在编程、数据清洗和网络开发等领域。例如...

Global site tag (gtag.js) - Google Analytics