原子 元字符 模式修正符为正则表达式三部分
原子
A全部打印字符和非打印字符(\n,\t等看不出来的)。
B转义字符:
除了a-z A-Z 0-9 _外的所有字符,在当做原子的时候,最好都加上反斜杠,来进行转义。可以将有意义的字符转成没有意义的普通字符(如将 ^ *等字符转成普通字符)。
假如你对其外的字符进行转义的话,很有可能将没有意义的字符转成有意义的字符,如\t(tab键)等。
C常见非打印字符
\f换页符
\n换行符
\r回车符
\t制表符
\v垂直制表符
D常见普通字符转义为特殊字符
\d匹配所有数字
\D匹配所有非数字
\s匹配任意一个空白符
\S匹配任意一个非空白符
\w匹配任意一个数字字母下划线
\W匹配任意一个非数字字母下划线
.代表任意原子
E 自定义原子表
[0-9a-z]此类的
[^0-9]代表非数字 ^为非的意思 -代表区间的意思
元字符
注意\在不同语言中,在充当转义功能时是否在单双引号中也需要自己进行转义
*代表其前面的字符可以出现任意次,包括零次
+代表其前面的字符可以出现除零次以外的所有次数
?其前面的字符出现0次或者1次
{m,n}代表其前面的字符出现最少m次,最多n次,包括m,n
{m,}代表其前面的字符出现最少m次,最多次数不限
{m}代表要求其前面的原子出现m次
!!!!!但是注意,不可以出现 {,n}这样的东西,m的位置必须有值
!!!!注意,只是说其前面的字符,仅指其前面一个
|代表或的意思,但是它的优先级最低,例子:/hello|heihei/ 匹配的是hello或者heihei两个整体,而非o与h两个字符。
^或者\A 要求字符的开始位置
$或者\Z 要求字符的结束位置
\b匹配单词边界
\B匹配除单词边界以外的部分
()括号的意义:
1改变优先级别 2将小原子变成大原子
3反向引用 例子: \1匹第一个子模式 4子模式,将一个大模式划分成很多子模式
模式修正符
i不区分大小写 m可以视为多行正则表达式
s .可以匹配所有符号,包括换行符,默认是不能匹配换行符的
x忽略正则表达式中的空白
.* .+正则表达是很贪婪,会尽可能多匹配东西 .*? .+? 可以取消贪婪模式
....正常匹配/\<b\>(\.\*)\<\/b\>/时,会从第一个匹配到最后一个,这就是贪婪,若取消后,则会匹配到第一个</b>就结束了。
网友评论