|
本帖最后由 tianping 于 2014-4-8 23:36 编辑
1、
“@”与正则无关,却总是和正则相伴
2、
\d 数字
\w 字母、数字、下划线
\s 空白(含\n \r \t \v \f)
(大写D、W、S意义相反)
. 除\n以外全部(单行模式包括\n)
[…] []内列出的字符
[^…] 非[]内列出的字符
[0-9] 数字0-9
\xXX 两位16进制字符编号
\uXXXX 四位16进制字符编号
[\u40ee-\u9fa5] 汉字范围
3、定位
^a a在开始处
a$ a结尾处 (^ $ 与multiline有关)
\b 单词边界
\B 非单词边界
4、重复描述
{n} 重复n次
{n,} 重复n次以上
{n,m} 重复n到m次
? 出现0或1次
+ 出现一次以上
* 出现任意次数
5、“或”匹配
(a|b) 先尝试匹配前面"a",失败则尝试匹配后面的“b"
6、组
(?<组名>...) 此后可用 “\序号” 表示该组内容
(?:...) 非捕获组
7、贪婪和非贪婪
正则表达式默认贪婪,.* 可匹配到结尾,.*? 查找最短匹配
8、预搜索
x(?=yy) 后面是yy的x
x(?!yy) 后面不是yy的x
(?<=yy)x 前面是yy的x
(?<!yy)x 前面不是yy的x
9、非回溯匹配
\d+?a 回溯匹配。逐个增加\d的个数,直到后面配到a就成功,如12345a将全串匹配
(?>\d+?)a 非回溯匹配。前面匹配了1个数字成功,后面匹配不到a就视为失败,故只能匹配12345a中的5a
|
|