
约定:
头尾两个斜杠/是正则表达式的定界符,这是Perl正则的标准,而PHP支持的正则表达式就是Perl正则的规范。表示两个斜杠之间就是正则内容。定界符可以自定义,比如用@、#都可以,定界符外面可以写参数,比如i、u、U等
安卓包名:/^([a-zA-Z_][a-zA-Z0-9_]*)+([.][a-zA-Z_][a-zA-Z0-9_]*)+$/
手机号:/^1[3456789]\d{9}$/
邮箱:
/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i
/(^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$)/i
身份证:/^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/
密码格式,8位及以上,数字+字母:/^(?![A-Za-z]+$)(?![0-9]+$)[a-zA-Z0-9]{8,}/
汉字:/^[\x{4e00}-\x{9fa5}]+$/u 类似 /^[0-9]+$/u
不能包含中文:/^[^\u4e00-\u9fff]+$/
(?:字符) 表示不捕获这个字符:获取括号里面的内容正则 - /(?:\()(.*)(?:\))/
/[^\w.]+/:有不是字母数字下滑线和点的
()表示捕获分组
(?:pattern):表示非捕获分组。和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来。'industr(?:y|ies)' 就是一个比 'industry|industries' 更简略的表达式
(?=pattern):紧接该位置之后的字符序列能够匹配pattern
(?!pattern):紧接该位置之后的字符序列不能够匹配pattern
(?<=pattern):紧接该位置之前的字符序列能够匹配pattern
(?<!pattern):紧接该位置之前的字符序列不能匹配pattern
^:在中括号里是取反,其他是开头
贪婪模式(默认):尽可能多的匹配
非贪婪模式:尽可能少的匹配,在量词后加问号即可。如:{2,6}?
注意:^[A-Za-z0-9]{18,20}$ 和 ^[A-Za-z0-9]{18, 20}$ 是不一样的,逗号后面有空格
注意:用测试工具需要把定界符去掉
含义
1.修饰符
g:全文搜索,不添加的话,搜索到第一个匹配停止
i:忽略大小写,默认大小写敏感
m:多行搜索
2.元字符
\t:水平制表符
\n:换行符
\r:回车符
\b:单词边界或者数字[0-9]
\D:非数字字符[^0-9]
\B:非单词边界
[ ]:归为一类,代表或,例:[abc]为a或b或c
[^]:取反,例:[^abc]为不是abc
[-]:范围,例:[a-z],[0-9],[a-zA-Z]大小写同时
^:以xxx开头
$:以xxx结束
.:除了回车换行以外的所有字符
\s:空白字符
\S:非空白字符
\w:单词字符(数字字母下划线)[a-zA-Z_0-9]
\W:非单词字符[^a-zA-Z_0-9]
3.量词
?:零个或一个(最多一个)
+:一个或多个(最少一个)
*:任意个
{n}:n个
{n,m}:从n个到m个(贪婪模式,尽可能多匹配到m,{n,m}?,非贪婪模式,少数匹配到n)
{n,}:至少n个
{0,n}:最多n个
( ):分组,abc{3}量词只做用于c,(abc){3}量词作用于abc
|:或,ab(e|c)df
$:引用分组,"2018-09-23".replace( /(\d{4})-(\d{2})-(\d{2})/g , '$2/$3/$1' ),09/23/2018
(?: ):忽略分组,不被引用,(?:abc)
(?=):正向前瞻,符合表达式同时后面也符合断言,"a3*34vv".replace( /\w(?=\d)/g , "x" ),把后面是数字的单词替换成x
(?!):负向前瞻
2万+

被折叠的 条评论
为什么被折叠?



