标签:效率 它的 用户 部分 除了 表单验证 匹配 too 记忆
什么是正则表达式?
能做什么
正则规则
所有的规则中的字符就可以刚好匹配到字符串中的内容
字符组:描述的是一个位置上能出现的所有可能性
接受范围,可以描述多个范围,连着写就可以了
[abc] 一个中括号只表示一个字符位置
匹配 a或者b或者c
[0-9] 根据ascii进行范围的比对
[a-zA-Z] 大小写
在正则表达式中能够帮助我们表示匹配的内容的符号都是正则中的 元字符
元字符 -- 匹配内容的规则
[] [^]
\d
\w
\s
\t
\n
\W 非数字字母下划线
\D 非数字
\S 非空白
[\d] \d
. 匹配除了换行符之外的所有
[^\d] 匹配所有的非数字
^ 匹配一个字符串的开始
$ 匹配一个字符串的结尾
a表达式|b表达式 匹配a或者b表达式中的内容,如果匹配a成功了,不会继续和b匹配
所以,如果两个规则有重叠部分,总是把长的放在前面
() 约束|描述的内容的范围问题
www\.oldboy\.com|www\.baidu\.com|www\.jd\.com|www\.taobao\.com
www\.(oldboy|baidu|jd|taobao)\.com
记忆元字符 : 都是表示能匹配哪些内容,一个元字符总是表示一个字符位置上的内容
# \d \w \s \t \n \D \W \S
# [] [^] .
# ^ $
# | ()
量词
{n} 表示匹配n次
{n,} 表示至少匹配n次
{n,m} 表示至少匹配n次,至多m次
? 表示匹配0次或1次 {0,1}
+ 表示匹配1次或多次 {1,}
* 表示匹配0次或多次 {0,}
匹配0次
# 整数 \d+
# 小数 \d+\.\d+
# 整数或小数 : \d+\.?\d*
# 分组的作用 : \d+(\.\d+)?
# 手机号码
# 1 3-9 11位
# 1[3-9]\d{9}
# 判断用户输入的内容是否合法,如果用户输入的对就能查到结果,如果输入的不对就不能查到结果
# ^1[3-9]\d{9}$
# 从一个大文件中找到所有符合规则的内容
# 1[3-9]\d{9}
# 贪婪匹配
# 在量词范围允许的情况下,尽量多的匹配内容
.*x 表示匹配任意字符 任意多次数 遇到最后一个x才停下来
# 非贪婪(惰性)匹配
.*?x 表示匹配任意字符 任意多次数 但是一旦遇到x就停下来
转义符
原本有特殊意义的字符,到了表达它本身的意义的时候,需要转义
有一些有特殊意义的内容,放在字符组中,会取消它的特殊意义
[().*+?] 所有的内容在字符组中会取消它的特殊意义
[a\-c] -在字符组中表示范围,如果不希望它表示范围,需要转义,或者放在字符组的最前面或最后面
一个很好用的正则表达式工具网站 :http://tool.chinaz.com/regex/?qq-f-to=pcqq.group
标签:效率 它的 用户 部分 除了 表单验证 匹配 too 记忆
原文地址:https://www.cnblogs.com/zhaoxinblog/p/13337989.html