正则表达式 7 ----大括号

  1. 实例
  1. 实例一:

假设图片的文件名只可能是小写字母,且最长不超过5位,最短是一位

根据上述字符串:取出图片的src集合

javaScript:

var str="<img src='abc.jpg'/><img src='abcde.png'/>";

 

var pattern=/<imgssrc='(w{1,5}.w+)'/>/g;

 

while(result=pattern.exec(str))

{

alert(result[1]);

}

 

java:

String str="<img src='abc.jpg'/><img src='abcde.png'/>";

 

Pattern p=Pattern.compile("<img\ssrc='(?<imgsrc>\w{1,5}.\w+)'\/>");

 

Matcher m=p.matcher(str);

 

while(m.find())

{

System.out.println(m.group("imgsrc"));

}

 

  1. 实例二:

<img src='abc.jpg'/><img src='abcde.png'/><img src='bbb.exe'/>

最后一个bbb.exe 明显不是我们想要的

于是,我们来做个规定:

我们只要后缀为jpg和png的图片,其他一律不要

 

var pattern=/<imgssrc='(w{1,5}.[jpg|png]+)'/>/g;

 

  1. 实例三:

var str="<img src='abc.jpg'/><img src='abcde.jpng'/><img src='bbb.exe'/>";

那么 abcde.jpng 也会取出,事实上这也不是我们想要的。

这时我们就要用到 {} 来限定。必须是三个字母

var pattern=/<imgssrc='(w{1,5}.[jpg|png]{3})'/>/g;

 

  1. 知识清单

小括号: (),往往用来分组,提取我们需要匹配的字符

中括号:[] ,往往用来表示匹配字符范围 .配合其他正则特性一起使用能实现很强大的功能

大括号:{} 代表匹配次数。{0,3} 代表>=0而<=3

{1,} 代表>=1

{3} 代表匹配3次

|: 代表 "或" 如:[jpg|png]

放到中括号里 代表匹配 jpg或png里面的任意一个字符。配合一个+就可以成单词取出

 

 

在人生中,赢家并不是那些有优秀基因的人,或是那些最有天分的人,而是那些最不屈不挠的人!当他们跌倒了,他们总是不断的爬起来,继续做,继续做。 no pain no gains (^ _ ^) !!
原文地址:https://www.cnblogs.com/fatsnake/p/5291785.html