! RegExp
基本语法
字符簇
一对方括号括起来的内容成为字符簇,表示范围中的一个
[a-z]
: 匹配小写字母 a-z 中的任一字符[A-Z]
: 匹配大写字母 A-Z 中的任一字符[0-9]
: 匹配数字从 0-9 中的任一数字[0-9A-Z]
: 匹配数字 0-9 或字母 A-Z 中的任一字符[abcd1234]
: 匹配 abcd1234 中的任一字符
在字符簇中,^
代表取反。
[^a-z]
: 匹配除 a-z 以外的字符
转义字符
\d
: 匹配一个数字字符[0-9]
\D
: 匹配一个非数字字符[^0-9]
\w
: 匹配包括下划线的任何单字字符,不包括空格[0-9a-zA-Z_]
\W
: 匹配任何非单词字符[^0-9a-zA-Z_]
\s
: 匹配任何空白字符制表符 (\t),空格,回车 (\n)[\t\n\f\r]
\S
: 匹配任何非空白字符[^\s]
.
: 匹配除 "\n" 之外的任何单个字符
限定符
指定正则表达式的一个给定组件必须要出现多少次才能满足匹配
{n}
: 匹配前面的子表达式确定的 n 次{n, }
: 匹配前面的子表达式至少 n 次{n, m}
: 匹配前面的子表达式最少 n 次且最多 m 次*
: 匹配前面的子表达式零次或多次{0, }
+
: 匹配前面的子表达式一次或多次{1, }
?
: 匹配前面的子表达式零次或一次{0, 1}
定界符
定位符可以将一个正则表达式固定在一行的开始或结束,也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式
^
: 匹配输入字符串的开始位置$
: 匹配输入字符串的结束位置\b
: 匹配一个单词边界\B
: 匹配非单词边界
一些符号的使用
\
: 对特殊字符进行转义表示字符串本身|
: 匹配多个规则()
: 将组合表达为一个整体
模式修正符
模式不是正则表达式的一部分,但是能够影响正则式的作用效果
g
: 全局模式i
: ignore,忽略大小写s
: 代表单行模式,把整个字符串当成一行来看待,js目前不支持单行模式m
: 多行模式
贪婪模式
在正则表达式中把能匹配多就不匹配少的情况称为“贪婪匹配”,正则表达式默认采用贪婪匹配原则。可以通过在限定符后面加 ?
把一个正则表达式由贪婪匹配转化为“非贪婪匹配”
实例
// FIXME
正则表达式
是一个对象
匹配模式:
/g
:全局
/i
:不区分大小写
测试正则中是否含有字符 reg.test(str)
执行正则 reg.exec(str)
查找字符在字符串中第一次出现的位置,查找不到返回 -1 str.search(reg)
返回匹配的子字符串的集合 str.match(reg)
str.replace(reg, '{goal}')
str.replace(reg, function(src){
return src.toUpperCase();
})
PHP 正则的使用
PHP 中的正则表达式是字符串形式
没有 /g
全局,有 @link
正则基本语法
loading...