正则表达式:匹配字符串标签:表示,字符,匹配,正则表达式,内容,字符串 From: https://www.cnblogs.com/moon3496694/p/17133722.html
能做什么:
1.检测输入的字符串是否合法
用户输入一个内容时,我们要提前做检测
能够提高程序的效率且减轻服务器压力
2.从一个大文件中找到所有符合规则的内容
能搞高效的从一大段文字中快速找到符合规则的内容
正则规则:
所有的规则中的字符就可以刚好匹配到的字符串中的内容
字符组 描述的是一个位置上能出现的所有可能性
接受范围,可以描述多个范围,连着写就可以了
在正则表达式中能够帮助我们表示匹配的内容的符号都是正则中的元字符
\d 匹配一位任意数字
\w 匹配[0-9 a-z A-Z]
空白(空格/tab/enter) 用空格,\t,\n匹配.
空格,tab和回车 都能用 \s 匹配
\W 非数字字母下划线
\D 非数字
\S 非空白
[\d\D] [\w\W] [\s\S] 表示匹配所有
. 表示匹配一个除换行符以外所有
[^] 表示匹配非字符组 ^要放最前面
^ 表示匹配一个字符串开始
$ 表示匹配一个字符串结尾
a表达式|b表达式 匹配a或者b表达式中的内容,如果匹配a成功了,就不会匹配b中的内容所以两个规则有重叠部分,总是把长的放在前面
量词
{n} 表示匹配n次
{n,} 表示匹配至少n次
{n,m} 表示至少匹配n次,至多m次
? 表示匹配0次或1次{0,1}
+ 表示匹配1次或者多次{1,}
* 表示匹配0次或者多次{0,}
匹配0次
整数 \d+
小数 \d+\.\d+
整数或小数 \d+\.?\d*
分组的作用 \d+(\.\d+)?
贪婪匹配
在量词范围允许的情况下,尽量多的匹配内容
。*x 表示匹配任意字符 任意多次数 遇到最后一个x就停下来
非贪婪(惰性)匹配
。*?x 表示匹配任意字符 任意多次数 但是一旦遇到x就停下来
转义符
原本有特殊意义的字符,到了表达它本身的意义的时候,需要转义
有一些有特殊意义的内容,放在字符组中,会取消它的特殊意义