二、正则表达式语法

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

常用的元字符如下:

  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. ^ 表示字符串开头,例如/^abc/,可以匹配abc、abc123等等
  7. $ 表示字符串结束,例如/def$/,可以匹配123def、abc456def等等
  8. [] 表示一个选择的范围
  9. { 表示限定限定符表达式的开始

  首先限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {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]/等待

  以上代码运行结果如下:

  

  

猜你喜欢

转载自www.cnblogs.com/hml-xxbj/p/9374851.html