正则表达式
前言:行吧~三分钟热度的过了大半年。时间过得很快,毕业一年多,至今还未摸索出想干点啥。
今天来记录下正则表达式的学习。对于正则这个东西吧,并不陌生,在校验字符串的时候常常会使用到它。但是本人也总是能不用就尽量不用吧,毕竟相对头可疼。但是又有时候较真点,觉得不写点正则的话显得代码很low。赶鸭子上架,学点、记点。
引用:《正则表达式30分钟入门教程》(这标题简洁明了似营销广告)
网址:http://deerchao.net/tutorials/regex/regex.htm
- 需求:密码必须包涵数字、小写字母、大写字母、特殊字符6~15位。
- 运用到的正则:/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[~`!@#%^&*()-_+={}:;<>,.?[\]\/\|\'\"\\\])[0-9a-zA-Z~`!@#%^&*()-_+={}:;<>,.?[\]\/\|\'\"\\\]{6,15}$/.
- 知识点汇总:
- 特殊代码
- ^:匹配字符串的开始
- $:匹配字符串的结束
- .:匹配除换行符以外的任意字符
- \w :匹配字母数字(等同于[0-9A-Za-z])
- \s:匹配任意空白符
- \d:匹配数字
- \b:匹配单词的开始或结束(这个今天才得知,记下记下)
- 重复
- *:重复零次或更多次
- +:重复一次或更多次
- ?:重复零次或一次
- {n}:重复n次
- {n,}:重复n次或更多次
- {n,m}:重复n到m次
- 反义
- \W: 匹配任意不是字母和数字的字符
- \S:匹配任意不是空白符的字符
- \D:匹配任意非数字的字符
- \B:匹配不是单词开头或结尾的位置
- [^x]:匹配除了x以外的任意字符
- [^asdfg]:匹配除了asdfg这几个字母以外的任意字符
- 贪婪&懒惰(默认匹配是贪婪的)
- *?:重复零次或更多次(但尽可能少重复)
- +?:重复一次或更多次(但尽可能少重复)
- ??:重复零次或一次(但尽可能少重复)
- {n,}?:重复n次或更多次(但尽可能少重复)
- {n,m}?:重复n到m次(但尽可能少重复)
- 特殊代码
- 例子
- 匹配IP :((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
| :相当于或 ,注意其顺序
\:反斜杠,转义符。如匹配特殊字符:*$等的时候就要使用转义符,转义后如下:”\*\$;转义符自身转义为:\\,在实践中字符串会先进行一次转义,所以需要加一次转义为:\\\
[]:匹配区间,[0-4]:0到4之间的数字,[01]表示匹配01,[0|1]表示匹配0或1。在中括号中无需转义特殊字符。(但是要注意右括号]、单引号'、双引号")
懵懵的知识点:后向引用、位置指定、负向位置指定(后续理解了再来补充)
结语:这半年除了工作都干了些啥、一步一步、不愿输就不要输。