正则表达式
1|0正则表达式
一套用于关键信息搜索与编辑的文字处理工具,可用于几乎所有的程序语言与计算机平台。
1|1RegExp 对象
- 表达式:
- 修饰符:
修饰符 | 描述 |
---|---|
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元字符
正则表达式由两种基本字符类型组成
- 原义文本字符:比如 a 代表 a 文本字符串
- 元字符(正则表达式中表示特殊含义的非字母字符)
* + ? $ ^ . | \ ( ) { } []
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反向引用
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 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/qingzhao/p/16575514.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析