Text:
. 点号 : 单个任何字符
- 连字符 : 在[]内部表示一个范围 [0-9] [a-z] 如果出现在[]内字符组的开头,也只表示一个普通字符
| 或 : x|y
_ 下
[] 方括号 : 为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符
[chars] 字符组 : [xyz]匹配字符组中的任意一个字符
[^chars] 排除型字符组 : None of chars
text1|text2 或 : text1 or text2
(pattern) 括号 : 分组括号,用于分组文本的捕获与变量的保存
(?:pattern) 匹配pattern但不存储变量且不能获取匹配结果
(?=pattern) 正向预查
(?!pattern)
表示匹配次数的符号:
? 可选项元素 0 or 1 of the preceding text 之前紧邻元素出现0次或者多次
* 0 or N of the preceding text (N > 0) 之前紧邻元素出现0次或者多次
+ 1 or N of the preceding text (N > 1) 之前紧邻元素出现1次以上
{n} 匹配恰好n次
{n,} 至少匹配n次
{n,m} 匹配从n次到m次
Grouping:
(text) Grouping of text
(either to set the borders of an alternative or
for making backreferences where the Nth group can
be used on the RHS of a RewriteRule with $N)
Anchors:
^ 脱字符/否 : 行的起始位置,如果在[]内表示否的意思
$ 美元符 : 行的结束位置
转义字符:
/char 将下一字符标记为特殊字符
/s 匹配任何空白字符(例如空格符、制表符、进纸符) /s -- 必需的空格
/s* 可选的空格
/S 除/s之外的任何字符
/t 制表符
/n 换行符
/r 回车符
/f
/. 句点 /. -- 必需的句点
正则表达式创建的快捷符号
/d [0-9]
/D [^0-9]
/w [a-zA-Z0-9]
/W [^a-zA-Z0-9]]
/s [/t/n/r/f]
/S [^/t/b/r/f]
(.*) 表示一组任何字符
(a|b)
([0-9]+)
?([0-9]+)?
([0-9]{4})
[0-9]{1,2})
?(.*)
(.*)?
把 http://www.myhost.com/foo.php?a=A&b=B&c=C
表现成 http://www.myhost.com/foo.php/a/A/b/B/c/C。
RewriteRule (.*?.php) (?[^/]*) ?/ ([^/]*) / ([^/]*) (.+?)?
$1(?2$2&:?)$3=$4?5$5: [N,I]
RewriteRule ^user/.html([^/]*)?$ ^/user.php?uid=$2 [QSA,L]
RewriteRule ^user/.html(.*)?$ ^/user.php?uid=$2 [QSA,L]
RewriteRule ^user/.html(_[^/]*)?$ ^/user.php?uid=$2 [QSA,L]
java下使用正则表达式
String content =topics.getContent();
final String tokerImg="<img +([^>]+)/>"; //匹配HTML图片
final String tokerSrc="src=/"+([^/"]+)/""; //匹配HTML图片中的src
final String tokerAlt="alt=/"+([^/"]+)/""; //匹配HTML图片中的alt
Pattern pat = Pattern.compile(tokerImg);
Matcher mat = pat.matcher(content);
Map<String, String> imgs=new HashMap<String, String>();//存入匹配的图片
while (mat.find()) {
String result=mat.group();
Pattern patAlt = Pattern.compile(tokerAlt);
Matcher matAlt = patAlt.matcher(result);
while(matAlt.find()){
//添加HTML图片
imgs.put(matAlt.group(), result);
}
}