`

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

 
阅读更多
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;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._参考文献

    正则表达式教学资料

    前言&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;

    正则表达式系统教程.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%...

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

    使用正则表达式检测字符串中重复出现的词,程序完全可以运行,大家可以参考

    正则表达式匹配重复字符

    匹配3个连续的相同字符的正则表达式写法。和验证是否是连续数字或字母的js写法。

    从零开始学习正则表达式

    正则表达式语法(01): 关于大小写与中文 正则表达式语法(02): 或者与重复 正则表达式语法(03): 匹配范围 正则表达式语法(04): 常用转义字符与 . 正则表达式语法(05): 边界 正则表达式语法(06): 贪婪匹配与非贪婪匹配 ...

    正则表达式自动生成器 v2.0.0 专业版.zip

    正则表达式自动生成器是一个智能、易用的正则表达式生成、测试以及字符串提取工具。正则表达式库让你可以直接借用正则表达式,而无需自己费脑筋。“正则表达式自动生成器”可以自动生成正则表达式,测试正则表达式,...

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    三、 正则表达式到底是什么东西? 3 四、 入门 4 五、 测试正则表达式 6 六、 元字符 7 七、 字符转义 9 八、 重复 9 九、 字符类 9 十、 分枝条件 10 十一、 分组 11 十二、 反义 12 十三、 后向引用 12 十四、 零...

    精通正则表达式~~~

    使用正则表达式匹配文本... 38 向更实用的程序前进... 40 成功匹配的副作用... 40 错综复杂的正则表达式... 43 暂停片刻... 49 使用正则表达式修改文本... 50 例子:公函生成程序... 50 举例:修整股票价格....

    从零开始学习正则表达式.rar

    正则表达式学习基础篇正则表达式语法(01): 关于大小写与中文 正则表达式语法(02): 或者与重复 正则表达式语法(03): 匹配范围 正则表达式语法(04): 常用转义字符与 . 正则表达式语法(05): 边界 正则表达式语法(06): ...

    正则表达式

    上面的Pattern对象可以重复使用多次,如果某个正则表达式仅需一次使用,可直接使用Pattern类的静态matches方法,此方法自动把指定字符串编译成匿名的Pattern对象,并执行匹配。 Boolean b=Pattern.matches(“a*b”,...

    正则表达式 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。

    30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符...

    深入浅出正则表达式

    1. 什么是正则表达式 2 2. 不同的正则表达式引擎 2 ...12. 正则表达式的匹配模式 13 13. 原子组与防止回溯 14 14. 向前查看与向后查看 14 15. 正则表达式中的条件测试 17 16. 为正则表达式添加注释 17

    19.4 正则表达式之重复出现数量匹配.mp4

    19.4 正则表达式之重复出现数量匹配.mp4

    C++算法:正则表达式匹配

    给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符...

    正则表达式文档下载和使用

    正则表达式文档 1._引子 2._正则表达式的历史 3._正则表达式定义 3.1_普通字符 3.2_非打印字符 3.3_特殊字符 ...7._正则表达式匹配规则 7.1_基本模式匹配 7.2_字符簇 7.3_确定重复出现 8._参考文献

    正则表达式自动生成(小白可用)

    RegEx Builder可以帮助您比较两个表达式的结果 可以在软件上定义表达式的组数据 可以查看字符的编辑逻辑 如果在测试的时候获得不准确的字符 您可以重复测试多次,直到得到正确的结果 可以在软件上建立正式...

Global site tag (gtag.js) - Google Analytics