正则表达式语法之一限定符

Posted hml-xxbj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式语法之一限定符相关的知识,希望对你有一定的参考价值。

  正则表达式的构成:特殊字符(元字符,例如*、$、^等等)和普通字符(这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。)普通字符不用多说,下面来看元字符。

常用的元字符如下:

  1. () 表示一个子表达式开始和结束的位置。
  2. *  表示前面的子表达式出现0次或者1次或者多次,例如 ro*t,可以匹配rot、root、roat、roost等等。
  3. ?表示前面的子表达式出现0次或者1次,例如ro(s)?t,可以匹配rot、rost、roter等等。ro(s)t 相当于是 /rot/ 和 /rost/,即包含rot或者rost的字符串都能匹配。
  4. + 表示前面的子表达式出现1次或者多次,例如abc+,可以匹配abc123、abcabc123
  5. . 表示除了‘ ‘之外的字符
  6. | 表示两项之间一个选择,
  7. ^ 表示字符串开头,例如/^abc/,可以匹配abc、abc123等等
  8. $ 表示字符串结束,例如/def$/,可以匹配123def、abc456def等等
  9. [] 表示一个选择的范围
  10. { 表示限定限定符表达式的开始

  首先限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。前面三个就不赘述了,主要看后三个

  1. {n}     表示前面的子表达式出现n次
  2. {n,}    表示前面的子表达式至少出现n次
  3. {n,m} 表示前面的子表达式至少出现n次,至多出现m次。请注意在逗号和两个数之间不能有空格。

  限定符的使用例子如下:

  

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>菜鸟教程(runoob.com)</title>
 6 </head>
 7 <body>
 8 
 9 <script>
10     var str1  = "Chapter 1";
11     var str2  = "Chapter 15";
12     var str3 = "Chapter ";
13     var reg = /Chapter [1-9][0-9]*/;
14     document.write(str1.match(reg)+"<br/>");
15     document.write(str2.match(reg)+"<br/>");
16     document.write(str3.match(reg)+"<br/>");
17 </script>
18 
19 </body>
20 </html>

  结果解释:/Chapter [1-9][0-9]*/ 等价于/Chapter [1-9]/  、 /Chapter [1-9][0-9]/  、/Chapter [1-9][0-9][0-9]/等待

  以上代码运行结果如下:

  技术分享图片

  

以上是关于正则表达式语法之一限定符的主要内容,如果未能解决你的问题,请参考以下文章

通过 Java 正则表达式提取 semver 版本字符串的片段

正则表达式

正则表达式

正则表达式 学习

正则表达式小结

学习笔记:正则表达式