外文翻译——正则表达式(7)——量词+, * 和?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了外文翻译——正则表达式(7)——量词+, * 和?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2000字,纯文字阅读大概需要3分钟。
内容图文
量词+, * 和?
一些被广泛使用的缩写量词"+","*"和"?"。
基本上,它们都是数量词的简写:
"+"
表示“大于等于一个”,等同于"{1,}"。
例如:"\d+"匹配一个任意长度的数字: 1 showMatch( "number 12345", /\d+/ ) // 12345
"?"
表示“零个或一个”,等同于"{0,1}"。它让一个字符变成可选的。
例如:"ou?nd"可以匹配"second"中的"ond",以及"secound"中的"ound"。
1 showMatch( "second", /secou?nd/ ) // "second"2 showMatch( "secound", /secou?nd/ ) // "secound", both variants match
"*"
表示“零个或多个”,等同于"{0,}"。一个字符可能会重复多次,亦或压根就不存在。
下例匹配一个后面跟了零个或多个"0"的数字。
1 showMatch( "100 10 1", /\d0*/g ) // 100, 10, 1
和"+"(一个或多个)对比:
1 showMatch( "100 10 1", /\d0+/g ) // 100, 10
量词是正则式的基石,下面有更多示例。
浮点数(带“.”):"\d+\.\d+ "
1 showMatch( "Any number of digits: 123.45", /\d+\.\d+/ ) // 123.45
没有属性的HTML开始标签:"/<[a-z]+>/i"
1 showMatch( "<BODY> ... </BODY>", /<[a-z]+>/gi ) // <BODY>
上面的正则式匹配符号"<",后面跟着一个或多个字母,并以">"符号结尾。这就是匹配一个开始标签的一种写法。
开始标签(更好):"/<[a-z][a-z0-9]>/i"
一个HTML标签可能在除了首位的任意位置出现数字。所以第一个字符是"[a-z]",后面跟着零个或多个"[a-z0-9]"。
1 showMatch( " 2 ... ", /<[a-z][a-z0-9]*>/gi ) // <H1>
这儿我们遇到一个会经常出现的尴尬情况。正则式越精确就越复杂。比如在HTML标签示例中,"<\w+>"也是个不错的选择。
当然"<\w+>"会匹配到非法标签如:"<_>",但是却比"<[a-z][a-z0-9]>"简单的多,而且在实际数据匹配中,也运行的非常好。
开始或结束标签:"/<\/?[a-z][a-z0-9]>/i"
为了同时能匹配开始和结束标签,一个可选择的斜杠"/?"被加在标签名前面。斜杠需要为JS解释器转义。
1 var re = /<\/?[a-z][a-z0-9]*>/gi 23 showMatch( "<BODY> ... </BODY>", re ) // <BODY>, </BODY>
查找一个正或者负的小数。
1 var re = /* your regexp */23var str = "1.5 0 123 -7 -0.4" 45 alert(str.match(re)) // ‘1.5‘, ‘-0.4‘
一个整数"\d+"。再加一个小数在后面"\.\d+"变成"\d+\.\d+"。
现在让我们在前面再添加一个可选的负号"-?"变成"-?\d+\.\d+"。
最后,测试一下:
1 var re = /-?\d+\.\d+/g 23var str = "1.5 0 123 -7 -0.4" 45 alert(str.match(re)) // ‘1.5‘, ‘-0.4‘
写一个正则式匹配数字。需要包含正整数和正小数:
1 var re = /* your regexp */23var str = "1.5 0 123" 45 alert(str.match(re)) // ‘1.5‘, ‘0‘, ‘123‘
整数部分"\d+"。
小数部分"\.\d+",再加一个"?"让它变得可选。
最后结果为:"\d+(\.\d+)?"。
1 var re = /\d+(\.\d+)?/g 23var str = "1.5 0 123" 45 alert(str.match(re)) // ‘1.5‘, ‘0‘, ‘123‘
原文:http://www.cnblogs.com/zysos2016/p/5734942.html
内容总结
以上是互联网集市为您收集整理的外文翻译——正则表达式(7)——量词+, * 和?全部内容,希望文章能够帮你解决外文翻译——正则表达式(7)——量词+, * 和?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。