当前位置: 代码迷 >> Web前端 >> 正则表达式语法的容易学习
  详细解决方案

正则表达式语法的容易学习

热度:89   发布时间:2013-04-20 19:43:01.0
正则表达式语法的简单学习

正则表达式直接量被定义为包含在一对2斜杠(/)之间的字符.

?

1.直接量字符

字母数字,常见转移字符\n等.

?

2.字符类

将单独的直接量字符放进方括号内就可以组成字符类.一个字符类和它所包含的任意字符都匹配.

字符 ? ? ?匹配?

[...] ? ? ? ?位于括号内的任意字符

[^...] ? ? ? 不在括号之中的任意字符

. ? ? ? ? ? ?除换行符和其他unicode行终止符之外的任意字符

\w ? ? ? ? 任何ASCII单字字符,等价于[a-zA-Z0-9_]

\W ? ? ? ?任何非ASCII单字字符,等价于[^a-zA-Z0-9_]

\s ? ? ? ? ?任何unicode空白符

\S ? ? ? ? 任何非unicode空白符的字符.

\d ? ? ? ? 任何ASCII数字,等价于[0-9]

\D ? ? ? ? 任何非ASCII数字,等价于[^0-9]

[\b] ? ? ? 退格直接量(特例)

?

3.重复

正则表达式的重复字符

字符 ? ? ?含义

{n,m} ? ? 匹配前一项至少n次,但是不超过m次

{n,} ? ? ? ?匹配前一项n次,或更多次

{n} ? ? ? ? 匹配前一项恰好n次

? ? ? ? ? ? 匹配前一项0次或1次,也就是说前一项可选.等价于{0,1}

+ ? ? ? ? ? 匹配前一项1次或多次.等价于{1,}

* ? ? ? ? ? ?匹配前一项0次或多次.等价于{0,}

?

4.选择,分组和引用

字符"|"用于分隔供选择的字符. ?/\d{3}|[a-z]{4}/匹配的是三位数字或四个小写字母.

正则表达式的选择,分组和引用字符

字符 ? ? ?含义

| ? ? ? ? 选择.

(...) ? ? 组合.

(?:...) ? 只组合.不记忆与该组匹配的字符.

\n ? ? ? ?和第n个分组第一次匹配的字符相匹配.组是括号中的字表达式.组号是从左到右计数的左括号数.

?

5.指定匹配的位置

正则表达式的锚字符

字符 ? ? ?含义

^ ? ? ? ? ? ?匹配字符串的开头,在多行检索中,匹配一行的开头

$ ? ? ? ? ? 匹配字符串的结尾,在多行检索中,匹配一行的结尾

\b ? ? ? ? ?匹配一个词语的边界.

\B ? ? ? ? ?匹配非词语边界的位置.

(?=p) ? ? 正前向声明,要求接下来的字符都与模式p匹配,但是不包括匹配模式中的那些字符.

(?!p) ? ? ?反前向声明,要求接下来的字符不与模式p匹配.

?

6.标志

正则表达式的标志,说明高级模式匹配的规则.和其他的正则表达式语法不同,标志是在"/"符号之外说明的,即它们不出现在两个斜杠之间,而是位于第二个斜杠之后.

正则表达式的标志

字符 ? ? ?含义

i ? ? ? ? ? ?执行不分大小写的匹配

g ? ? ? ? ? 执行一个全局的匹配.简而言之,即找到所有匹配,不是在找到第一个之后就停止

m ? ? ? ? ?多行模式,^匹配一行的开头和字符串的开头,$匹配一行的结尾或字符串的结尾