玛卡巴卡的卡巴卡玛 发表于 2022-8-20 10:31:24

正则表达式

正则表达式

正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。通常被用来检索、替换那些符合某个模式(规则)的文本。
1、正则表达式构造摘要

(1)字符类

:a、b 或 c(简单类)
[^abc]:任何字符,除了 a、b 或 c(否定)
:a 到 z 或 A 到 Z,两头的字母包括在内(范围)
(2)预定义字符类

.:任何字符(与行结束符可能匹配也可能不匹配)
\d:数字:
\D:非数字: [^0-9]
\s:空白字符:[ \t\n\x0B\f\r]
\S:非空白字符:[^\s]
\w:单词字符:
\W:非单词字符:[^\w]
(3)POSIX 字符类(仅 US-ASCII)

\p{Lower}小写字母字符:
\p{Upper}大写字母字符:
\p{ASCII}所有 ASCII:[\x00-\x7F]
\p{Alpha}字母字符:[\p{Lower}\p{Upper}]
\p{Digit} 十进制数字:
\p{Alnum}字母数字字符:[\p{Alpha}\p{Digit}]
\p{Punct} 标点符号:!"#$%&'()*+,-./:;?@[]^_`{|}~
\p{Blank} 空格或制表符:[ \t]
(4)边界匹配器

^:行的开头
$:行的结尾
(5)Greedy 数量词

X?:X,一次或一次也没有
X*:X,零次或多次
X+:X,一次或多次
X{n}:X,恰好 n 次
X{n,}:X,至少 n 次
X{n,m}:X,至少 n 次,但是不超过 m 次
(6)Logical 运算符

XY:X 后跟 Y
X|Y:X 或 Y
(X):X,作为捕获组
(7)特殊构造(非捕获)

(?:X) X,作为非捕获组
(?=X) X,通过零宽度的正 lookahead
(?!X) X,通过零宽度的负 lookahead
(?(?>X) X,作为独立的非捕获组
2、常见的正则表达式示例


[*]验证用户名和密码,要求第一个字必须为字母,一共6~16位字母数字下划线组成:(^\w{5,15}$)
[*]验证电话号码:xxx/xxxx-xxxxxxx/xxxxxxxx:(^(\d{3,4}-)\d{7,8}$)
[*]验证手机号码:( ^(13|14|15|18)\d{8}$ )
[*]验证身份证号: (^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
[*]验证Email地址:(^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$)
[*]只能输入由数字和26个英文字母组成的字符串:(^+$)
[*]整数或者小数:(^+(.+){0,1}$)
[*]中文字符的正则表达式:([\u4e00-\u9fa5])
[*]金额校验(非零开头的最多带两位小数的数字):(^(*)+(.{1,2})?$)
[*]IPV4地址:(((\d{1,2})|(1\d{1,2})|(2\d)|(25))\.){3}((\d{1,2})|(1\d{1,2})|(2\d)|(25))
[*] 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 正则表达式