正则表达式的语法
正则表达式是一种特殊的字符串模式,用于匹配一组字符串
- abc+d:匹配+前一个字符一次或n次,(0/1)。如:abcd、abccd;
- abcd:匹配前一个字符零次、一次或n次,(0/1/n)。如abd、abcd、abccd;
- abc?d:匹配?前一个字符零次或一次(0/1)。如abd、abcd。
正则表达式符号介绍
-
元字符介绍
" ^ “:^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。
" $ “:KaTeX parse error: Undefined control sequence: \b at position 14: 会匹配行或字符串的结尾 "\̲b̲" : \b匹配一个位置,…
“\w”: 匹配字母,数字,下划线,但不能匹配空格。
“\s” : 匹配空格
“.” : 匹配除了换行符以外的任何字符 ,这个算是”\w"的加强版了,”\w"不能匹配空格
例如他能匹配 "hd _ds12 d c"字符串。
“[abc]” : 字符组 匹配包含括号内元素的字符,例如:[a-z]; -
几种反义
写法很简单改成大写就行了,意思与原来的相反,这里就不举例子了
“\W” 匹配任意不是字母,数字,下划线 的字符
“\S” 匹配任意不是空白符的字符
“\D” 匹配任意非数字的字符
“\B” 匹配不是单词开头或结束的位置
" [ ^abc] " 匹配除了abc以外的任意字符 -
量词
“*” : 重复零次或更多
“+” : 重复一次或更多次
“?” : 重复零次或一次
“{n}” : 重复n次
“{n,m}”:重复n到m次
“{n,}” :重复n次或更多次,与{n,m}不同之处就在于匹配的次数将至少要重复n次没有上限,如"a{3,}"
a 至少要重复3次 -
限定符
“*?” 重复任意次,但尽可能少重复
“+?” 重复1次或更多次,但尽可能少重复
“??” 重复0次或1次,但尽可能少重复
“{n,m}?” 重复n到m次,但尽可能少重复
“{n,}?” 重复n次以上,但尽可能少重复
正则进阶----捕获分组
“(exp)” 匹配exp,并捕获文本到自动命名的组里
“(?exp)” 匹配exp,并捕获文本到名称为name的组里
“(?:exp)” 匹配exp,不捕获匹配的文本,也不给此分组分配组号
“(?=exp)” 匹配exp前面的位置
“(?<=exp)” 匹配exp后面的位置
“(?!exp)” 匹配后面跟的不是exp的位置
如 “123abc” 正则 "\d{3}(?!\d)“匹配3位数字后非数字的结果
“(?<!exp)” 匹配前面不是exp的位置
如 “abc123 " 正则 “(?<![0-9])123” 匹配"123"前面是非数字的结果也可写成”(?!<\d)123”