在JS中正则表达式的定界符就是一对/,所有写在/之内的都是正则的内容。
注意:在其他语言中可以使用其他特殊符号作为正则定界符。
原子是组成正则表达式最基本的单位。任何一个正则表达式至少包含一个原子。
元字符的作用就是用来修饰原子,使得正则表达式的结构更加灵活可靠。元字符也叫作原子修饰符。
[]
原子列表用户可以通过原子列表的方式自定义指定范围的字符。原子列表依然表示指定范围字符中的一个字符。
注意: 原子列表表示多个字符中的一个字符。
[^]
排除列表排除列表是原子列表的提升,可以限定选取制定字符之外的字符中的一个。
\*
任意数量的指定原子\+
一个数量以上的原子?
表示0个或1个原子{}
圈定范围{m} 表示m个原子
{m,} 表示m个以上的原子
{m,n} 表示m-n个数量之间原子
^
表示字符串必须以正则中指定的字符开头!$
表示字符串必须以正则中指定的字符结尾!^正则表达式$ 精确匹配模式
\b
单词边界表示能够用来分割单词的字符, 空格,标点符号,特殊字符(除了数字和字母)
\B
非单词边界表示不能够用于分割单词的字符。 数字和字母
注意:词边界和非词边界一般只用于英文正则中。
\n
之外的任意一个字符注意:如果正则中需要使用字符。 必须进行转义 \。
除此之外,任意在正则表达式中又意义的字符要当做普通字符使用都必须进行转义操作(。 * + ? [] () ^ $)
()
括号元字符|
或运算元字符i
忽略英文大小写g
全局匹配模式m
多行匹配模式.*?
贪婪模式正则在进行匹配时,从开始位置查找最远的结束位置,这种模式称之为贪婪模式。
在进行HTML标签类似内容获取时,贪婪模式会导致整个内容的返回,需要使用非贪婪模式。
固定的书写规则 : .*? 这种方式就是非贪婪模式
?:
取消暂存内容的作用()
最前面 加上?:
字符串 例如 (?:/\d/)
var 变量 = /正则规则/模式修正符;
var a = /\d/g;
var 变量 = new RegExp('正则规则','模式修正符');
var a = new RegExp('\\d', 'g');
\\
转义
var a = /\d/g;
var b = a.source;
console.log(b);
输出:\d
获取结果不包括在正则表达式文本中使用的分隔斜线,并且它不包括在“g”,“i” 和“m” 属性。
exec(字符串)
;exec()
和match()
的区别:
exec()
和match()
除了操作格式不一样,结果是一样的。exec()
依然进行一次匹配,只不过在上次匹配的内容之后开始一次新的匹配match()
是一次性返回字符串中所有符合正则内容组成的数组。它的参数是一个字符串,用test( )对某个字符串进行检测,该方法仅仅是用于测试正则内容是否在字符串中出现,匹配成功返回true,匹配失败返回false。
原文:https://www.cnblogs.com/aduner/p/12231438.html