一周前就学习了正则表达式了。可是由于懒惰一直么有记录。现在也模糊不清了,那就把记住的一点总结一下吧,供以后复习查找使用。等等以后遇到了需要记录的问题只能再补充进来了。
1、测试正则的工具:RegextBuddy。可以到jdk手册中查找正则的用法。
2、正则的基本组成可以理解成形容词+量词的组合。前边描述这个东西是什么,后边表达这个东西的数量。量词只修饰他前边的一个字符。想量词修饰多个的需用()把要匹配的东西扩起来。
3、形容词:
数字:[0-9] 或者\d
字母[a-zA-Z]
\w表示大小写字母、数字、下划线
特殊字符中的空白字符:\s
.除了特殊字符,能匹配任意字符。
[\s\S]匹配任意字符
^在[]中是取反的意思。[^369]匹配除了3、6、9的其他字符
^在[]外表示字符串开头。$表示字符串结尾
[..]中括号中的匹配字符他们之间的关系是“或”的关系 。例如 [/s/S]代表匹配任意字符
4、量词:
+:1到多个。相当于{1,}
?: 0到1个。==》{0,1}
*:0到多个。==》{0,}
{}:代表区间值 。==》{m,n}
量词匹配分贪婪模式和非贪婪模式。
贪婪模式:匹配最多的字符 /w{3-6} 配置6个英文字符
非贪婪模式:在量词后边加?.匹配最少的字符 /w{3-6}?匹配3个英文字符
字符边界:位置配置 ^:字符串开始 $:字符床结尾的位置 \b:前边的字符和后边的字符不全是\w
单行模式/多行模式/忽略大小写模式
单行模式:整个文本看成一个字符串,只有一个开头和一个结尾
多行模式:每行都是一个字符串,都有开头和结尾。字符串开始位置:\A字符串结束位置:\Z
捕获组和反向引用:重复捕获组捕获到的内容 ()\n 捕获到的内容或保存到内存
非捕获组:想用捕获组,但是不想到把匹配到的内容保存到内存 (?:) 会匹配但是反向引用已经没用了
零宽断言:匹配位置 http://baike.baidu.com/link?url=3-1y7KqkJp7y7YPkRiatv28RGhzqvuXcWBVyebJAEWOE-O-Pi9AifqF4WGl2aYUSu0hBDDDP1yIltEyM4QuWl_