预定义类
| 字符 | 等价类 | 含义 |
| . | [^\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 | 非单词边界 |
量词
希望匹配一个连续出现20次数字的字符串
| 字符 | 含义 |
| ? | 出现零次或一次 |
| + | 至少出现一次 |
| * | 出现任意次 |
| {n} | 出现n次 |
| {n,m} | 出现n到m次 |
| {n,} | 至少出现n次 |
贪婪模式:尽可能多的匹配
非贪婪模式:让正则表达式尽可能少的匹配,一旦匹配成功就不再继续尝试:在量词后加上?即可。
分组
使用()可以达到分组的功能,使量词作用于分组
或
使用 | 可以达到或的效果
反向引用
忽略分组:不希望捕获某些分组,只需要在分组内加上?:
前瞻
对象属性
global:是否全文搜索
ignore case:是否大小写敏感
multiline:多行搜素
lastIndex:当前表达式匹配内容的最后一个字符的下一个位置
source:正则表达式的文本字符串
RegExp.prototype.test(str)
用于测试字符串参数中是否存在匹配正则表达式模式的字符串,存在未true,否则为false
String.prototype.search(reg)
search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
方法返回一个匹配结果index,查找不到返回-1
search方法不执行全局匹配,它将忽略标志g,并且总是从字符串的开始进行检索
String.prototype.match(reg)
match()方法将检索字符串,以找到一个或多个与regexp匹配的文本
regexp是否具有标志g对结果影响很大
本文详细介绍了正则表达式的各种元素及其用法,包括预定义类、边界匹配、量词、分组、或运算和反向引用等内容。适用于正则表达式初学者及进阶学习者。
2880

被折叠的 条评论
为什么被折叠?



