正则表达式学习笔记

来源:互联网 发布:童装行业数据 编辑:程序博客网 时间:2024/06/05 08:14

PCLE模式两端必须有一个界定符 // 或者 ##,!! 一般用//
正则表达式最主要的组成部分:
1:原子(普通的字符) /abc/ 里面有3个原子 a b c
1) a到z A到Z 0到9 一个字母就是一个原子
2)模式单元 (abc)加了括号之后表示一个原子
3)原子表 【xcy】表示原子只能从x c y这三个字符里面去选择
4)重新使用的模式单元 \\1 \\2 \\3
5) 普通转义字符
\d 表示数字 \D代表除了数字以外的 \w \W \s \S
\w代表的是大小写字母和数字,下划线     \W除了\w之外的
\s匹配的是换行符 比如 \n 制表符 空格等等 \S表示除了空白字符串
\n专门匹配换行的 \0NN 八进制 \xNN 十六进制
6)转义元字符 想将元字符不当特殊字符使用的时候 就要进行转义 比如 \? \+

2: 元字符(有特殊功能的字符 ? + * . ¥ ^)
1)字符串边界限制
^   $  /^abc/表示以abc开头的   /abc$/ 表示以abc结尾的 /^abc$/精确匹配abc
\A  \Z
2)单词边界限制
\b \B /\babc/ 用空格隔开的表示一个单词 意思是只要字符串中有以abc开头的单词就可以 放后面表示以abc结尾的 /\Babc/ 不能以abc开头 但是要包含abc
3)重复匹配
?修字符用来修饰前面的一个原子 用来表示这个原子可以1次或者0次的出现
* 修字符表示0次 1次或多次
+ 修字符 表示至少要出现1次
4)任何一个字符(点),除了换行符(\n \r\n) 只匹配一个
.
5) 指定重复匹配次数 “/^ab{3}$” b只能出现3次 {3,4}匹配的上限和下限 最少3次 最多4次
{3,}最少3次 最多随便 后面就可以不写
6)原子表 [] 只能在其中选一个原子 【^abc】除了 abc以外的和中括号外面的是不一样的
【a-z】表示匹配a-z中任意一个【a-zA-Z0-9】只有ASCII是连续的 才可以用-来表示
[a-zA-Z0-9_]  相当于/w
a2 z7 [a-z][0-9]
0xFF 0xFF   0[xX][a-fA-F0-9]+
<h1> <p> <img> <body>
<[a-zA-Z][a-zA-Z0-9]*> html标签匹配格式
7)模式选择符
| "/hello world|earth/" 竖线相当于对正则表达式进行分割 这里面就2个增长表达式
一个是hello world 一个是 earth
8)模式单元 ()
/^hello (world|earth)$/ 就只能是hello world 或者 hello earth
/abb*c/
9)重新使用的模式单元
2009-09-21 或者 2009/09/21  /^\d{4}([-\/])\d{1,2}\\1\d{1,2}$/
 /^\d{4}[-\/]\d{1,2}[-\/]\d{1,2}$/
(?:a) 表示不存储这个模式单元
如果括号嵌套的话 /1是从外往里计算的

3:模式修正符(是对正则表达式语义的修正 比如不区分大小写等等)
i 可以同时匹配大小写字母
x 忽略空白
U 匹配到最近的字符串
s 可以将字符串视为单行
m 可以将字符串视为多行
"/abc/i" 忽略大小写 在界定符外面写