正则表达式

1|0正则表达式

一套用于关键信息搜索与编辑的文字处理工具,可用于几乎所有的程序语言与计算机平台。

1|1RegExp 对象

  • 表达式:
var reg = \\bis\b\g; var reg = new RegExp('\bis\b’,’g')
  • 修饰符:
修饰符 描述
g global 全局搜索(默认匹配第一个值即停止)
i ignore 忽略大小写( 默认大小写敏感)
m multiple lines 多行搜索 (针对存在换行符的情况)
  • 属性
    lastIndex: 在表达式匹配内容的最后一个字符的下一个位置(全局匹配模式下生效,否则为 0 )
    source : 正则表达式的文本字符串
属性 描述
global 是否有 g 修饰符
ignoreCase 是否有 i 修饰符
multiline 是否有 m 修饰符
lastIndex 下一次匹配的字符的起始位置
source 正则表达式的源文本
  • 对象方法:
方法 描述
test 返回 ture false (主要 lastindex)
exec 没匹配返回 null 匹配返回 数组 arr arr[0] 为匹配文本 arr[1]为第一个子表达式(分组)匹配文本(如果有),,,arr[2]表示第二个子表达式匹配文本(如果有) ….以此类推
compile
  • String 对象相关方法
方法 描述
search 参数可输入 字符串(数字默认为字符串) 也可以是正则表达(忽略全局匹配)
match 参数接受正则表达式,区分全局模式 返回 null / 数组 匹配的结果
split 参数接受正则表达式 or 字符串
replace 参数接受正则表达式 or 字符串

1|2元字符

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

  1. 原义文本字符:比如 a 代表 a 文本字符串
  2. 元字符(正则表达式中表示特殊含义的非字母字符)

    * + ? $ ^ . | \ ( ) { } []

1|3方括号

元字符 [ ] 构建简单类

所谓类是指符合某些特性的对象,满足集合类任意规则即可

1|4范围类

表达式 描述
[0-9] 0-9 任意数字
[a-z] a-z 任意小写字母
[A-Z] A-Z 任意大写字母

1|5预定义类(特殊元字符)

元字符 描述
. 任意字符,除了换行和行结束符(\n, \r, \u2028 , \u2029)
\w 单词字符,等同 [A-Za-z0-9_]
\W 非单词字符
\d 数字字符
\D 非数字字符
\s 空白字符 [\t\n\x0B\f\r]
\S 非空白字符
\0 NUL 字符
\n 换行符
\f 换页符
\r 回车符
\t 制表符
\cx 控制符如:\cI 匹配 control + I,等价于 \t;x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的“c"字符
\xxx 以八进制数 xxx 规定的字符
\xdd 以十六进制数 dd 规定的字符
\uxxxx 以十六进制数 xxxx 规定的 Unicode 字符

1|6边界(特殊元字符)

元字符 描述
^xx 以 xx 开始
xx$ 以 xx 结束
\b 单词边界
\B 非单词边界

1|7量词(特殊元字符)

元字符 描述
? 出现 0 或 1 次(最多一次)
+ 一次或多次(至少一次)
* 任意多次
出现 n 次
出现 n 至 m 次
至少出现 n 次

1|8贪婪模式/非贪婪模式

正则表达式默认为贪婪模式,尽可能多匹配

非贪婪模式,,在量词后加上 ? 即可

1|9分组(特殊元字符)

元字符 描述
| 表示或者关系
() 建立分组

1|10反向引用

字符$n 表示第几个分组 (分组1) (分组2) $1 $2 不捕获分组 在分组内加 ?: (分组1)( ?:分组2) (分组3) $1 $2

1|11前瞻

表达式 描述
exp(?=assert) 正向前瞻
exp(?!assert) 负向前瞻
exp(?<assert) 正向后顾 ! JavaScript 不支持
exp(?<!assert) 负向后顾 ! JavaScript 不支持

__EOF__

本文作者Odyssey
本文链接https://www.cnblogs.com/qingzhao/p/16575514.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   --Odyssey--  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示