正则表达式

正则表达式
淤白🌈正则表达式
⭕什么是正则表达式
正则表达式描述了字符串的“构成模式”,经常被用于检查字符串是否符合预定的格式要求
💡正则表达式“按位”描述规则
正则表达式“按位”描述规则,是指它是一位一位的描述字符串的构成形式
比如检查字符串是否是这样的:以字母m开头,然后是3个数字,最后以字母n结尾(/^m\d{3}n$/)
⭕正则表达式的创建
使用**/内容/**的语法形式,可以快速创建正则表达式
也可以使用**new RepExp(‘内容’)**的形式,创建正则表达式
🔔使用typeof运算符检查正则表达式的类型,结果是object
1 | // 方式一:/内容/ 的形式 |
⭕元字符
“元字符”是指一位指定类型的字符
| 元字符 | 功能 |
|---|---|
| \d | 匹配一个数字 |
| \D | 匹配一个非数字字符 |
| \w | 匹配一个单字字符(字母、数字、下划线) |
| \W | 匹配一个非单字字符 |
| \s | 匹配一个空白字符,包括空格、制表符和换行符 |
| . | 任意字符 |
| ^ | 开头 |
| $ | 结尾 |
| | | 匹配指定几项之间的一项 |
❗元字符注意事项‘
如果使用new RegExp()写法,反斜杠需要多写一个
比如/^\d$/和new RegExp(‘^\\d$’)是相同的意思
📍元字符使用举例
1 | // 某快递公司运单号形式是这样的:123-4567-890,请使用正则表达式检查某字符串是否符合此格式 |
📍字符的转义
在特殊字符之前的反斜杠\表示下一个字符不是特殊字符,应该按照字面理解
不管一个符号有没有特殊意义,都可以在其之前加上一个\以确保它表达的是这个符号本身
⭕方括号表示法
使用方括号,比如[xyz],可以创建一个字符集合,表示匹配方括号中的任意字符
比如某学校的学号规定:第1位是一个字母,b表示本科生y表示研究生,后面是7位数字,用正则表示为:/^[by]\d{7}$/
💡可以使用短横-来指定一个字符范围,^表示否定
| 元字符 | 等价的方括号表示法 |
|---|---|
| \d | [0-9] |
| \D | [^0-9] |
| \w | [A-Za-z0-9_] |
| \W | [^A-Za-z0-9_] |
⭕量词
| 量词 | 意义 |
|---|---|
| * | 匹配前一个表达式0次或多次。等价于{0,} |
| + | 匹配前一个表达式1次或多次。等价于{1,} |
| ? | 匹配前一个表达式0次或1次。等价于{0,1} |
| {n} | n是一个正整数,匹配了前面一个字符刚好出现了n次 |
| {n,} | n是一个正整数,匹配前面一个字符至少出现了n次 |
| {n,m} | n和m都是正整数,匹配前面的字符至少n次,最多m次 |
⭕修饰符
修饰符也叫作标志,用于使用正则表达式实现高级搜索
| 修饰符 | 意义 |
|---|---|
| i | 不区分大小写搜索 |
| g | 全局搜索 |
⭕正则表达式的相关方法
| 方法 | 简介 |
|---|---|
| test() | 测试字符串是否匹配正则表达式,返回布尔值 |
| exec() | 根据正则表达式,在字符串中进行查找,返回结果数组或者null |
💡exec()方法的逐条遍历
exec()方法最有趣的是,有’g’修饰符的正则表达式将自动成为“有状态”的,这意味着可以对单个字符串中的多次匹配结果进行逐条的遍历
1 | // exec()方法的逐条遍历 |
⭕字符串的相关方法
| 方法 | 简介 |
|---|---|
| search() | 在字符串中根据正则表达式进行查找匹配,返回首次匹配到的位置索引,测试不到则返回-1,类似于indexof() |
| match() | 在字符串中根据正则表达式进行查找匹配,返回一个数组,找不到则返回-1 |
| replace() | 使用替换字符串替换掉匹配到的子字符串,可以使用正则表达式 |
| split() | 分割字符串为数组,可以使用正则表达式 |
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果







