正则学习小记
最近做项目的时候涉及到一些数据校验的部分,感觉自己对于正则表达式可以说是遗忘得非常彻底了...所以做一个比较完整的笔记来补充一下正则知识吧!
正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
搜索模式可用于文本搜索和文本替换。
基础部分
一、基本语义描述符1、\d
(数字字符)与\d
(非数字字符)
2、\w
(字母数字下划线)与\w
(非字母数字下划线)
3、\s
(空白字符)与\s
(非空白字符)
空白字符包括制表符、换行符、垂直制表符、换页符、回车符
4、.
(任何字符,除n)
5、\xXX
(单字节)与\uXXXX
(双字节)
1、^
(匹配字符串的开始位置)
2、$
(匹配字符串的结束位置)
3、\b
(空格)与\b
(非空格)
1、*
(匹配0-∞次 等价于{0,})
2、+
(匹配1-∞次 等价于{1,})
3、?
(匹配0-1次 等价于{0,1})
4、{n}
(匹配n次,n>0)
5、{n,}
(匹配n-∞次,n>0)
6、{n,m}
(匹配前一项至少n次,但是不能超过m次 ,n>0 且 n<=m)
1、|
(或操作)
2、[]
(IN操作,匹配所包含的任意一个字符
`[^]`非的情况
IN条件与或条件的区别:或条件是支持多字符,将一个段做为一个整体而IN条件只支持单字符
五、组(...)与非捕获组(?:...)正则表达式会将刮号里的内容单独保存成一个组,并且匹配到的组可以反向引用,n是引用第n组
pattern.Add("\\.(.{1,6})");//.开头取6个字符 结果:Group[0]=.tansea Group[1]=tansea
如果不想把刮号里的内容保存到组,可以用非捕获组
pattern.Add("\\.(?:.{1,6})");搜索模式:g,i,m
reg=new RegExp("pattern",["flags"])的方式比较好 pattern: 正则表达式 flags: g 全文查找出现的所有pattern i 忽略大小写 m 多行查找
附:常用的正则表达式以及校验工具
https://c.runoob.com/front-en...