正则表达式

正则表达式

正则表达式验证网站:https://regex101.com
符号 解释 示例 说明
. 匹配任意字符 a.c 可以匹配abc / adc / a#c / a1c等
\w 匹配字母/数字/下划线 a\wc 可以匹配abc / a1c / a_c等
但不能匹配b#t
\s 匹配空白字符(包括\r、\n、\t等) hello\sword 可以匹配hello word
\d 匹配数字 \d\d 可以匹配00 / 10 / 99等
\b 匹配单词的边界 \bhello\b hello
^ 匹配字符串的开始 ^hello 可以匹配hello开头的字符串
$ 匹配字符串的结束 .py$ 可以匹配任意.py结尾的字符串
\W 匹配非字母/数字/下划线 a\Wc 可以匹配a#c / a@c等
\S 匹配非空白字符 hello\Sword 可以匹配hello@word等
\n 匹配一个换行符
\r 匹配一个回车符
\t 匹配一个制表符
\D 匹配非数字 \d\D 可以匹配9a / 3@ / 0Z等
\B 匹配非单词边界 \Bow\B 可以匹配helloword的 ow
[] 匹配来自字符集的任意单一字符 [abcde] 可以匹配方括号内任意一个(或)
[^] 匹配不在字符集中的任意单一字符 [^aeiou] 可以匹配除方括号中的任意字符
* 匹配0次或多次 \w*
+ 匹配1次或多次 \w+
? 匹配0次或1次 \w?
{N} 匹配N次 \w{3}
{M,} 匹配至少M次 \w{3,}
{M,N} 匹配至少M次至多N次 \w{3,6}
分支 doc丨xlsx 可以匹配doc或者xlsx
(?#) 注释
*? 重复任意次,但尽可能少重复 a.*b
a.*?b
将正则表达式应用于aabab,前者会匹配整个字符串aabab,后者会匹配aab和ab两个字符串
+? 重复1次或多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{M,N}? 重复M到N次,但尽可能少重复
{M,}? 重复M次以上,但尽可能少重复

示例:

  1. 匹配IP地址

    [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}
    image-1662230251211

LICENSED UNDER CC BY-NC-SA 4.0