RegExp--笔记
来源:互联网 发布:h5页面源码下载 编辑:程序博客网 时间:2024/06/05 15:22
1.普通字符
数字、字母、下划线、中文。。。
\n 换行符
\t 制表符(也就是tab键)
\\ 表示"\"本身
\^,\$,\{,\}... 匹配字符本身
2.标准字符
\d 0~9中的任意一个数字
\D 非数字
\w 任意一个字母、数字、下划线、中文
\W 除了以上之外
\s 空格符、制表符、换行符等空白符中的任意一个
\S 除了空白符之外
. 匹配任意一个字符,所有的都匹配
3.自定义字符集
[] : 表示自定义字符集
ex: [abd] 表示匹配abd中的任意一个字符,他们是“或”的关系
^ : 在自定义字符集中是取反的意思
ex: [^abd] 表示匹配除了abd的任意字符,包括空白字符
- :表示重什么到什么一般 0-9 a-z A-Z
ex: [a-z] 表示匹配26个小写字母中的任意一个
[^0-9] 表示除了0-9数字之外的任何
4:修改匹配次数
{} : 表示修改匹配的次数
{n} : 表达式重读n次
{m,n}: 表达式至少重复m次,最多n次
ex: \d{m,n} 数字最少m个,最多n个
{m,} : 表达式至少重复m次,多了不限
? : 匹配0次或1次,相当于{0,1}
+ : 表达式至少出现1次,相当于{1,}
* : 表达式出现任意次,包括0,相当于{0,}
5:模式
贪婪模式:默认匹配符合表达式的最长的字符
非贪婪模式:反之
ex:在匹配次数的后面加上"?"就可以取消贪婪模式
\d{2,4}? 以最少次数2匹配
\d+? 以最少次数1匹配
\d*? 以最少次数0匹配
a\d{2,4}?b 这种表达式在匹配的时候要先匹配整个表达式
6:匹配模式
ignorecase 忽略大小写模式
ex: (?i) [a-z] (?-i)
?i 开启忽略大小写
?-i 关闭忽略大小写
singleline 单行模式 将所有的字符串当做一行字符串,只有一个开头和结尾
multiline 多行模式 每行都有开头和结尾
7:字符边界
^ : 匹配字符串开始的位置,与自定义的"^"不同
ex: ^ab 匹配以ab开头
$ : 匹配字符串的结尾 -- 记住默认是单行模式只有一个结尾
ex: ab$ 以ab结尾,并匹配ab
\b: 匹配一个单词边界
ex: boy\b 匹配boy的"右边"不是\w的其他字符
8:选择符和分组
(): 分组的意思
| : 或的意思
ex: (0\d{2,3}-\d{7,8}) | (1[34578]\d{9}) 匹配前面的表达式或后面的表达式
9:反向引用 每一对()会分配一个编号,会根据左括号的顺序自动从1开始编
\数字 :将前面的第几个分组引用下,就不用重写了
ex: <([a-zA-Z]+)> .+ </\1> 这里\1就是将前面的分组引用过来
([a-z]{2}) \1 将前面的重复1次
10:预搜索(零宽断言) 是对位置的匹配
(?=exp) :断言自身出现的位置的后面能匹配表达式exp
ex:[a-z]+(?=ing) 后面应该有ing,但是不会匹配
(?<=exp) :断言自身出现的位置的前边能匹配表达式exp
ex:(?<=_)[a-z]+ 匹配前面有"_"的字符
(?!exp) :断言此位置的后面不能匹配表达式exp
(?<!exp):断言此位置的前面不能匹配表达式exp
11:练习
1: 匹配首尾空格
(^\s+)|(\s+$)
数字、字母、下划线、中文。。。
\n 换行符
\t 制表符(也就是tab键)
\\ 表示"\"本身
\^,\$,\{,\}... 匹配字符本身
2.标准字符
\d 0~9中的任意一个数字
\D 非数字
\w 任意一个字母、数字、下划线、中文
\W 除了以上之外
\s 空格符、制表符、换行符等空白符中的任意一个
\S 除了空白符之外
. 匹配任意一个字符,所有的都匹配
3.自定义字符集
[] : 表示自定义字符集
ex: [abd] 表示匹配abd中的任意一个字符,他们是“或”的关系
^ : 在自定义字符集中是取反的意思
ex: [^abd] 表示匹配除了abd的任意字符,包括空白字符
- :表示重什么到什么一般 0-9 a-z A-Z
ex: [a-z] 表示匹配26个小写字母中的任意一个
[^0-9] 表示除了0-9数字之外的任何
4:修改匹配次数
{} : 表示修改匹配的次数
{n} : 表达式重读n次
{m,n}: 表达式至少重复m次,最多n次
ex: \d{m,n} 数字最少m个,最多n个
{m,} : 表达式至少重复m次,多了不限
? : 匹配0次或1次,相当于{0,1}
+ : 表达式至少出现1次,相当于{1,}
* : 表达式出现任意次,包括0,相当于{0,}
5:模式
贪婪模式:默认匹配符合表达式的最长的字符
非贪婪模式:反之
ex:在匹配次数的后面加上"?"就可以取消贪婪模式
\d{2,4}? 以最少次数2匹配
\d+? 以最少次数1匹配
\d*? 以最少次数0匹配
a\d{2,4}?b 这种表达式在匹配的时候要先匹配整个表达式
6:匹配模式
ignorecase 忽略大小写模式
ex: (?i) [a-z] (?-i)
?i 开启忽略大小写
?-i 关闭忽略大小写
singleline 单行模式 将所有的字符串当做一行字符串,只有一个开头和结尾
multiline 多行模式 每行都有开头和结尾
7:字符边界
^ : 匹配字符串开始的位置,与自定义的"^"不同
ex: ^ab 匹配以ab开头
$ : 匹配字符串的结尾 -- 记住默认是单行模式只有一个结尾
ex: ab$ 以ab结尾,并匹配ab
\b: 匹配一个单词边界
ex: boy\b 匹配boy的"右边"不是\w的其他字符
8:选择符和分组
(): 分组的意思
| : 或的意思
ex: (0\d{2,3}-\d{7,8}) | (1[34578]\d{9}) 匹配前面的表达式或后面的表达式
9:反向引用 每一对()会分配一个编号,会根据左括号的顺序自动从1开始编
\数字 :将前面的第几个分组引用下,就不用重写了
ex: <([a-zA-Z]+)> .+ </\1> 这里\1就是将前面的分组引用过来
([a-z]{2}) \1 将前面的重复1次
10:预搜索(零宽断言) 是对位置的匹配
(?=exp) :断言自身出现的位置的后面能匹配表达式exp
ex:[a-z]+(?=ing) 后面应该有ing,但是不会匹配
(?<=exp) :断言自身出现的位置的前边能匹配表达式exp
ex:(?<=_)[a-z]+ 匹配前面有"_"的字符
(?!exp) :断言此位置的后面不能匹配表达式exp
(?<!exp):断言此位置的前面不能匹配表达式exp
11:练习
1: 匹配首尾空格
(^\s+)|(\s+$)
阅读全文
0 0
- RegExp--笔记
- JS - RegExp 正则笔记
- JS - RegExp 笔记
- 【笔记】JS - RegExp对象
- Javascript学习笔记(RegExp对象)
- RegExp
- regexp
- RegExp
- RegExp
- regexp
- RegExp
- RegExp
- Regexp
- regexp
- Regexp
- Regexp
- RegExp
- RegExp
- 《30天自制操作系统》 day02
- 下载文件
- Linux(Red Hat)安装loadrunner负载机(精简步骤)
- django select_related 和 prefetch_related 函数对 QuerySet 查询的优化(三)
- Java多线程学习(超详细总结)
- RegExp--笔记
- ASP.NET 搜索关键字标记为红色
- 各类文件的文件头标志
- 微信小程序为什么不用HTML5、CSS,自己搞了个WXML、WXSS,很多框架用不了,好处一点不知道?
- Kafka学习整理二(定义、特点、应用场景)
- JMeter中3种参数值的传递
- Deep Learning模型之:CNN卷积神经网络(三)CNN常见问题总结
- sqoop-1.4.6 安装及配置
- oracle中trim,ltrim,rtrim函数用法