正则表达式的总结使用

原理:

正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征 正则表达式是作为一个模版 , 将某个字符串 与搜索的 字符串进行匹配

比如 表达式“ab+” 描述的特征是“一个 ‘a’ 和 任意个 ‘b’ ”,那么 ‘ab’, ‘abb’, ‘abbbbbbbbbb’ 都符合这个特征。

用途:

(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。

(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。

 (3)用来替换,比普通的替换更强大。

正则的 使用规则

普通字符

	指的是字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。

//需求  ===需要验证是否一个包含 'c'  

	var str= 'cbas'
	
//成功  开始于 0 结束于1

转义字符

一些不便书写的字符,采用在前面加 "\" 的方法。这些字符其实我们都已经熟知了。

表达式 可匹配
\r, \n 代表回车和换行符
\t 制表符
\ 代表 “” 本身

如果 一些特殊符号 加上 \ 之后 , 代表的则不是原本的特殊 意思  比如说小数点  ' . ' 之前代表的是可以匹配除了换行符(\n)以外的任意一个字符 但是加上转义字符代表的 则是  小数点其本身 .  这些转义字符的匹配方法与 "普通字符" 是类似的。也是匹配与之相同的一个字符。

// ^, $ 都有特殊意义,如果要想匹配字符串中 "^" 和 "$" 字符,则表达式就需要写成 "\^" 和 "\$"

多种字符 匹配的 表达式

正则表达式中的一些表示方法,可以匹配 '多种字符' 其中的任意一个字符。比如,表达式 "\d" 可以匹配任意一个数字。虽然可以匹配其中任意字符,但是只能是一个,不是多个。

表达式 可匹配
\d 任意一个数字,0~9 中的任意一个
\w 任意一个字母或数字或下划线,也就是 A-Z,a-z,0-9, _ 中任意一个
\s 包括空格、制表符、换页符等空白字符的其中任意一个
. 小数点可以匹配除了换行符(\n)以外的任意一个字符

表达式 可匹配
\S 匹配所有非空白字符("\s" 可匹配各个空白字符)
\D 匹配所有的非数字字符
\W 匹配所有的字母、数字、下划线以外的字符
\B 匹配非单词边界,即左右两边都是 “\w” 范围或者左右两边都不是 “\w” 范围时的字符缝隙

自定义能够匹配 ‘多种字符’ 的表达式

表达式 可匹配
[ab5@] 匹配 “a” 或 “b” 或 “5” 或 “@”
[^abc] 匹配 “a”,“b”,“c” 之外的任意一个字符
[f-k] 匹配 “f”~“k” 之间的任意一个字母
[^A-F0-3] 匹配 “A”“F”,"0"“3” 之外的任意一个字符

修饰匹配次数的特殊符号

表达式 作用
{n} 表达式重复n次,比如:"\w{2}" 相当于 “\w\w”;“a{5}” 相当于 “aaaaa”
{m,n} 表达式至少重复m次,最多重复n次,比如:“ba{1,3}“可以匹配 “ba"或"baa"或"baaa”
{m,} 表达式至少重复m次,比如:”\w\d{2,}“可以匹配 “a12”,”_456”,“M12344”…
? 匹配表达式0次或者1次,相当于 {0,1},比如:["acd]?"可以匹配 “a”,“ac”,“ad”

  • 表达式至少出现1次,相当于 {1,},比如:"a+b"可以匹配 "ab","aab","aaab"...
    
  • 表达式不出现或出现任意次,相当于 {0,},比如:"\^*b"可以匹配 "b","^b"...
    

使用方法是:"次数修饰"放在"被修饰的表达式"后边。比如:“bcd” 可以写成 “[bcd]{2}”。

抽象意义的特殊符号

比如 ^ $

表达式 作用
^ 与字符串开始的地方匹配,不匹配任何字符
$ 与字符串结束的地方匹配,不匹配任何字符
\b 匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符

一些特殊的字符综合

字符 说明
^ 匹配输入字符串的开始位置。要匹配 “^” 字符本身,请使用 “^”
$ 匹配输入字符串的结尾位置。要匹配 “ " 使 " " 字符本身,请使用 "
( ) 标记一个子表达式的开始和结束位置。要匹配小括号,请使用 “”
[ ] 用来自定义能够匹配 ‘多种字符’ 的表达式。要匹配中括号,请使用 " \ ["
{ } 修饰匹配次数的符号。要匹配大括号,请使用 “{” 和 “}”
. 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 " \ . ’
? 修饰匹配次数为 0 次或 1 次。要匹配 “?” 字符本身,请使用 “?”

  • 修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "+"      
    
  • 修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "*"    
    

| 左右两边表达式之间 “或” 关系。匹配 “|” 本身,请使用 “|”
\1 正则表达式中表示的 则是 指定 第一个 子 匹配项 指的是 对以前捕获的子配项的引用

两个常用的属性

i 忽略大小写

g 全局变量

括号 “( )” 内的子表达式,如果希望匹配结果不进行记录供以后使用,可以使用 “(?:xxxxx)” 格式

//举例1:表达式 "(?:(\w)\1)+" 匹配 "a bbccdd efg" 时,结果是 "bbccdd"。括号 "(?:)" 范围的匹配结果不进行记录,因此 "(\w)" 使用 "\1" 来引用。

猜你喜欢

转载自blog.csdn.net/weixin_42935546/article/details/82786007