- 实例
- 实例一:
假设图片的文件名只可能是小写字母,且最长不超过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"));
}
- 实例二:
<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;
- 实例三:
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;
- 知识清单
小括号: (),往往用来分组,提取我们需要匹配的字符
中括号:[] ,往往用来表示匹配字符范围 .配合其他正则特性一起使用能实现很强大的功能
大括号:{} 代表匹配次数。{0,3} 代表>=0而<=3
{1,} 代表>=1
{3} 代表匹配3次
|: 代表 "或" 如:[jpg|png]
放到中括号里 代表匹配 jpg或png里面的任意一个字符。配合一个+就可以成单词取出