正规表示式 Regular Expression

程式进阶知识: 正规表示式 Regular Expression

常见名词

  • 正规表示式
  • 正规表达式
  • Regular Expression

特殊字元

字元 说明 范例 符合的字串
\ 跳脱字元,将指定字元变成字串 \*, \\ *.jpghttp:\\
^ 字串开头字元 ^a abc
$ 字串开结尾字元 t$ eat
* 字元出现 0~n a* aaa
+ 字元出现 1~n 次,等于 {1,} a+a{1,} aaa
? 字元出现 0~1 次,等于 {0,1} a?a{0,1} a
. 除了换行字元,其他字元都符合
() 撷取资料括弧 (abc) abc
x(?=y) 符合 x 的字元,但后方要接 y 字元
x(?!y) 符合 x 的字元,但后方不是 y 字元
`x y` 符合 x 的字元,或是 y 字元
{n} 字元出现 n 次
{n,m} 字元至少出现 n 次,至多出现 m 次
[xyz] 字元的集合,这个字要包含集合中的候选字 [xyz][a-z] xyz
[^xyz] 字元的集合,这个字不能包含集合中的候选字 [^xyz][^a-z] 123
\d 整数,等于 [0-9] \d[0-9] 123
\s 符合空白、tab 等任何字元,等于 [^\f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
\S 符合非空白、tab 等任何字元,等于 [^\f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
\t 符合 tab 字元
\w 符合数字字母底线字元,等于 [A-Za-z0-9_] \w[A-Za-z0-9_] abc_123
\W 符合非数字字母底线字元,等于 [^A-Za-z0-9_] \W[^A-Za-z0-9_]

跳脱特殊字元

字元 跳脱
\ \\
( \(
) \)
[ \[
] \]
{ \{
} \}

参考正规表示式

比对项目 正规表示式
ip 位址 \d+\.\d+\.\d+\.\d+
中文字 [\u4e00-\u9fa5]
Email \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
邮递区号 \d{3}((-)?\d{2})?
网址 /^http://[a-za-z0-9]+.[a-za-z0-9]+[/=?%-&amp;_~@[]':+!]*([^<>""])*$/
手机 [0-9]{4}\-[0-9]{3}\-[0-9]{3}

Regular Expression 网站

测试

视觉化

Tutorial

参考资料