全局匹配: /g
不区分大小写匹配: /i
匹配任意字符: “.”
匹配特殊字符:用”\”进行转义
定义字符集: []
字符区间:用”-“定义,例[0-9]
注意: “-”是一个特殊的元字符,只能用在”[” 与 “]”之间,在字符集合之外的地方,”-“只是一个普通字符,只能与其本身匹配,因此”-“字符不需要被转义。
对某个字符集进行取非匹配: “^”,如[^0-9]
元字符大致分为两种: 匹配文本,例”.” ;语法要求,例”[“和”]”
空白元字符匹配:
回退(并删除)一个字符: \b
换页符: \f
换行符: \n
回车符: \r
制表符: \t
垂直制表符: \v
由上发现元字符间的差异:
.和[是元字符,但前提是未被转义
f和n也是元字符,但前提是需对其转义
用特殊元字符来代替常用的字符集合,又称字符类:
数字元字符:
任何一个数字字符[0-9]: \d
任何一个非数字字符[^0-9]: \D
字母和数字:
任何一个字母数字或下划线[a-zA-Z0-9_]: \w
任何一个非字母数字或下划线: \W
空白字符(不包含\b):
任何一个空白字符[\f\n\r\t\v]: \s
任何一个非空白字符: \S
重复匹配
匹配一个或多个字符: +,例: a+
匹配零个或多个字符: * ,例: a*
匹配零个或一个字符: ? ,例: https?
为重复匹配次数设定一个精确的值: 例: a{3}
为重复匹配次数设定一个区间: 例: a{2,4}
为重复匹配次数设定一个最小值: 例: a{3,}
防止过度匹配
例*和+都是“贪婪型”元字符,会尽可能从文本的开头匹配到文本的结尾,有时需要禁止这种贪婪行为,而采用“懒惰型”,只需要匹配到第一个匹配时即结束,而转变为“懒惰型”只需要在元字符后加上?即可,例+?,{3,}?
位置匹配
单词边界:
匹配一个单词的开头或结尾: \b,例: \bdog\b
匹配一个非单词边界: \B
\b匹配且匹配一个位置,不匹配任何字符串
这个位置是位于一个能够用来构成单词的字符和一个不能构成单词的字符之间(也即\w和\W之间)
字符串边界:
定义字符串开头: ^
定义字符串结尾: $
分行匹配模式: (?m)
子表达式:
用”(“和”)”元字符定义子表达式,例
要匹配 至少重复有2次以上的, {2,}是无效的,只能匹配 ;;这种情况,此时即需要构建表达式: ( ){2,}