javascript正则表达式的一些笔记

正则表达式:Regular Expression。使用单个字符串来描述,匹配一系列符合某个句法规则的字符串。即按照某种规则去匹配符合条件的字符串。正则表达式就是规则。

\b 单词边界

regexp对象:

加g表示全局,匹配所有

不加只匹配一次

加i表示忽略大小写,默认是不忽略

m代表多行搜索。

正则表达式由两种基本字符类型组成

  1. 原义文本字符
  2. 元字符:在正则表达式中有特殊含义的非字母字符

\t 水平制表符

\v 垂直制表符

\n 换行符

\r 回车符

\0 空字符

\f 换页符

\cX 与X对应的控制字符(Ctrl+X)

使用元字符[]来构建一个简单的类,符合某些特性的对象,是泛指。如[abc]把字符a,b,c归为一类。

^在中括号中代表反义。

预定义类

. [^\r\n]

\d [0-9]

\D [^0-9]

\s [\t\n\x0B\f\r]

\S [^\t\n\x0B\f\r]

\w [a-zA-Z_0-9]

\W [^a-zA-Z_0-9]

边界匹配字符

^ 以xxx开始

$以xxx结束

\b 单词边界

\B 非单词边界

量词:

? 出现0次或一次(最多一次

  • 出现一次或多次(至少一次
  • 出现0次或多次(任意次

    {n} 出现n次

    {n,m} 出现n到m次

    {n,} 至少出现n次

非贪婪模式,量词加?

\d{3,6}?

用括号可以分组,如可以用分组加量词

用|可以达到或的效果

反向引用

用$捕获分组

分组内加上?;可以忽略分组

正向前瞻 exp(?=assert)

负向前瞻 exp(?!assert)

断言部分不包含在规则里,如替换时断言部分不替换

正则对象属性

global: 是否全文搜索

ingore case: 是否大小写敏感

multiline: 多行搜索

默认皆为false,只读,不能设值

lastIndex: 当前表达式匹配内容的最后一个字符的下一个位置,即下一次搜索的开始位置

source: 正则表达式的文本字符串

test() ,会造成一些坑,跟lastIndex有关

exec() 没匹配返回null,否则返回结果数组

上一篇:DevExpress v18.1新版亮点——ASP.NET篇(二)


下一篇:Mysql执行计划说明