关于正则表达式

正则表达式

英文为Regular expression,简称:regexregexp
含义:按照某种规则去匹配符合条件的字符串正则表达式

正则表达式由两种基本字符类型构成:express

  • 原义文本字符
  • 元字符

元字符是在正则表达式中有特殊含义的非字母字符:* + ? ^ $ . | \ () {} []code

经常使用字符集
\t:水平制表符
\v:垂直制表符
\n:换行符
\r:回车符
\0:空字符
\f:换页符
|:或regexp

字符类
由元字符[]建立。字符类取反:由^建立,反向类,[^123]表示不是字符123的内容对象

范围类
[a-z]:来链接两个字符表示从az的任意字符字符串

预约义类
.[^\r\n],除了回车符和换行符以外的全部字符
\d[0-9],数字字符
\D[^0-9],非数字字符
\s[\t\n\x0B\f\r],空白符
\S[^\t\n\x0B\f\r],非空白符
\w[a-zA-Z0-9_],单词字符(字母、数字、下划线)
\W[^a-zA-Z0-9_],非单词字符 io

边界
^:开始标记,以xx开始
$:结束标记,以xx结束
\b:单词边界
\B:非单词边界 ast

量词
?:出现0次或1
+:出现1次或多个
*:出现0次或屡次(任意次)
{n}:出现n
{n,}:出现n次或n次以上,当n0时等价于*n1时等价于+
{n,m}:出现n次到m次,当n0m1时等价于? 搜索

贪婪模式和非贪婪模式
正则表达式默认是贪婪模式,当使用量词进行匹配时,会尽量匹配多的。英文

非贪婪模式:让正则表达式尽量少的匹配,也就是说一旦成功匹配再也不继续尝试。
在量词后面加上?便可

'123456789'.match(/\d{3,5}?/g)

result:{'123', '456', '789'}

分组()
忽略分组:(?: Byron).(ok)

前瞻后顾
正向前瞻:exp(?=assert)
负向前瞻:exp(?!assert)
正向后顾:exp(?<=assert)
负向后顾:exp(?<!assert)

对象属性

  • global:是否全文搜索,默认false
  • ignore case:是否大小写敏感,默认false
  • multiline:多行搜索,默认值是false
  • lastindex:是当前表达式匹配内容的最后一个字符的下一个位置
  • source:正则表达式的文本字符串
相关文章
相关标签/搜索