js正则表达式【续】(相关字符的解释含义)
1、字符类
[直接量]
. (点号,小数点) 匹配任意单个字符,但是行结束符除外
\d 匹配一个0-9之间的阿拉伯数字。等价于[0-9]
\D 匹配任意一个不是0-9之间阿拉伯数字的字符。等价于[^0-9]。
\w 匹配任意一个字母、数字或下划线的字符。等价于 [A-Za-z0-9_]。
\W 匹配任意一个不是字母、数字或下划线的字符。等价于 [^A-Za-z0-9_]。
\s 匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格。
\S 匹配一个非空白符。
\t 匹配一个水平制表符(tab)
\r 匹配一个回车符(carriage return)
\n 匹配一个换行符(linefeed)
\v 匹配一个垂直制表符(vertical tab)
\f 匹配一个换页符(form-feed)
2、数量词
x* 匹配前面的模式 x 0 或多次。
x+ 匹配前面的模式 x 1 或多次。等价于 {1,}。
x*? 像上面的 * 一样匹配前面的模式 x,然而匹配是最小可能匹配。【非贪婪模式:优先匹配最小的次数】
x+? 像上面的 + 一样匹配前面的模式 x,然而匹配是最小可能匹配。【非贪婪模式:优先匹配最小的次数】
x? 匹配前面的模式 x 0 或 1 次。
x|y 匹配 x 或 y
x{n} n 是一个正整数。前面的模式 x 连续出现 n 次时匹配
x{n,} n 是一个正整数。前面的模式 x 连续出现至少 n 次时匹配。
x{n,m} n 和 m 为正整数。前面的模式 x 连续出现至少 n 次,至多 m 次时匹配。
3、字符集合
[xyz] 一个字符集合(字符组)。匹配集合中的任意一个字符。【你可以使用连字符'-'指定一个范围。[0-9] [a-z] [A-Z]】
[^xyz] 一个反义或补充字符集(反义字符组)。匹配任意不在括号内的字符。【你也可以通过使用连字符 '-' 指定一个范围内的字符】
4、边界
^ 匹配输入开始。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符后的开始处。
$ 匹配输入结尾。如果多行(multiline)标志被设为 true,该字符也会匹配一个断行(line break)符的前的结尾处。
\b 匹配一个零宽单词边界(zero-width word boundary),如一个字母与一个空格之间。
\B 匹配一个零宽非单词边界(zero-width non-word boundary),如两个字母之间或两个空格之间。
5、分组
(x) 匹配 x 并且捕获匹配项。 这被称为捕获括号(capturing parentheses)。
\n n 是一个正整数。一个反向引用(back reference),指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串。
eg:
/\w+:\/\/\w+(.)\w+\1\w+/
拓展:
a.在分组情况中,如果(x)后面有数量词修饰时;它也只算做一个()【括号】来算,而后面使用的\n来指向正则表达式中该括号时,
则是指向它重复次数的最后一次()【括号】里面所包含的内容。【可以使用str.match(正则表达式)不带g修饰符来输出进行检测查看】
b.\n后面加数量词修饰则是重复\n选择的括号里面的字串。
eg:
str = 'ababaabaa'
console.log(str.match(/([a-z]).\1/g)); //['aba','aba']
console.log(str.match(/([a-z]){2}.\1/g)); //['abab','aaba']
console.log(str.match(/([a-z]){2}.\1{2}/g)); //[babaa]
console.log(str.match(/([a-z]).\1{2}/g)); //['abaa']
js正则表达式【续】(相关字符的解释含义)的更多相关文章
- JS正则表达式的创建、匹配字符串、转义、字符类、重复以及常用字符
正则表达式都是操作字符串的 作用:对数据进行查找.替换.有效性验证 创建正则表达式的两种方式: // 字面量方式 /js/ // 构造函数方式 regular expression new RegEx ...
- JS正则表达式获取字符串中特定字符
JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取. 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test 实 ...
- js正则表达式replace里有变量的解决方法用到RegExp类
一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...
- JS 正则表达式中的特殊字符
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...
- Shell编程基础教程5--文本过滤、正则表达式、相关命令
5.文本过滤.正则表达式.相关命令 5.1.正则表达式(什么是正则表达式?正则表达式怎么进行匹配?常用命令) 简介: 一种用来描述文本模式的特殊语法 ...
- JS正则表达式大全(整理详细且实用)
JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...
- JS正则表达式大全【转】
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...
- 【转】JS正则表达式大全(整理详细且实用)
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...
- JS正则表达式完整教程
JS正则表达式完整教程(略长) 引言 亲爱的读者朋友,如果你点开了这篇文章,说明你对正则很感兴趣. 想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准. 关于正则表达式的教程, ...
随机推荐
- Spring Boot-Error:(3, 32) java: 程序包org.springframework.boot不存在
问题分析 -由于加载的项目没有加载相应的依赖的包文件导致 解决方案 setting 选中图中的设置,点击apply,IDE就会自动下载所需要的包文件
- 解决docx4j 变量替换 由于变量存在样式式或空白字符 导致替换失败问题
参考文章:https://blog.csdn.net/qq_35598240/article/details/84439929 使用docx4j进行变量替换时 变量(形如:${变量})必须是无格式的, ...
- UltraISO安装windows10时0x8007000D错误解决办法
进入安装界面之后提示错误:windows无法打开所需的文件 F:\Sources\install.wim.请确保安装所需的所有文件可用,并重新启动安装.错误代码:0x8007000D 原因: 肯定是i ...
- JMeter压测上对于并发的认识误区
1.误区 在JMeter压测过程中,我们通常认为1s内100的并发量(即:QPS为100)的设置如下: 此时,没有再添加额外的控制器.上述中的参数设置解释:Number of Threads(user ...
- DownloadURLFile网络文件下载
import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; impo ...
- vue项目.eslintrc格式化
场景:.eslintrc非常的严谨,但是严格总是好的,能写出好的代码.如何格式化呢?写好的代码 如何一键 变成符合.eslintrc规范的代码呢??? 比如 双引号变单引号 去掉分号等等. 解决 ...
- 阿里云composer 镜像
2019年12月2日13:54:32 https://developer.aliyun.com/composer 阿里云的镜像更新时间比较及时 本镜像与 Packagist 官方实时同步,推荐使用最新 ...
- Jmeter做压力测试
1)首先双击bin/jmeter.bat 2)创建Thread Group 3)配置HTTP Request 4)配置Aggregate Report 5)配置并发数和并发时间 6)点击绿色按钮,执行 ...
- Python的Colorama模块
简介 Python的Colorama模块,可以跨多终端,显示字体不同的颜色和背景,只需要导入colorama模块即可,不用再每次都像linux一样指定颜色. 1. 安装colorama模块 1 pip ...
- ABP .NETCore更新数据库时一直连接的之前数据库
使用Update-Database -Verbose更新数据库时,在appsettings.json配置文件中已修改为新的连接字符串,但是使用命令更新数据库时仍然连接的是之前的数据库. 后来把代码移至 ...