正则表达式学习总结
正则表达式学习
正则表达式平时偶尔使用,都是从网上直接搜索借鉴。前天在使用时,发现都忘记了。需要重新学习一下。不管在哪个编程语言里面,用到正则表达式的机会都是比较多的。
什么是正则表达式
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”)。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
正则表达式的目的
- 可以测试字符串内的模式 即数据验证
- 可以用来替换文本
- 基于模式匹配从字符串中提取子字符串
正则表达式基本语法
常用的元字符
首先要认识的是一些元字符。这些在匹配是组合使用的。
- ^ 代表的开始位置
比如我们一串字符串bcde去识别是否为bc开头的,则可以写为^bc
- $ 代表结束位置
例如:abcd 确认是不是结束为cd 则cd$
- * 代表匹配子表达式零次或多次
例如:abc ,aabb, aacc 确认c出现的次数 c*
- + 代表匹配前面的表达式一次或多次
例如:abc ,aabb, aacc 确认c出现的次数 c+
能匹配到的是abc和aacc
- ? 代表匹配前面的表达式零次或一次
例如:abc ,aabb, aacc 确认c出现的次数 c?
能匹配到的是abc
- {n} 匹配确定的n次
- {n,} 至少匹配n次
- {n,m} 至少匹配n次且最多匹配m次
- ? 如果前面的字符后面加上了这个问号,则变为非贪婪模式即尽可能少的匹配字符串
匹配用的普通字符
. 代表除换行符之外任何单字符
[ABC] 匹配括号里面所有的字符
[^ABC] 匹配出来ABC的所有字符
[A-Z] 匹配所有大写字符
[a-z] 匹配所有小写字母
[0-9] 匹配数字0-9
\w 匹配字母数字和下划线
记录一些常用的正则表达式用法
求整数 145
^([^0]\d+|(0+))$
如果是多位则判定不是0开头的数字或者直接为0
求负整数 -123
^-[^0]\d+$
先用[^0]
判定不是0开头,然后再判定数字至少出现一次
求数字和字母的组合
^[A-Za-z0-9]+$
求长度为8-10的用户密码(以字母开头数字和下划线)
^[a-zA-Z]\w{7,9}$
以字母开头 ^[a-zA-Z] ,\w表示为字母数字下划线出现7-9次
求是否包含某字符串开头并且开头可能包含空格
^\s*昆山疫情.*$
评论
评论插件加载失败
正在加载评论插件