返回归档
🌞技术分享

正则表达式

文章目录

限定符

  • ***** 用来表示 0~无限
    • 用来表示1~无限
  • ? 用来表示 0~1
  • {2,6}用来表示2 ~6次

匹配符:

d? d出现0/1次

a* a可以出现0/多次

a+ a出现一次以上

a{6} a出现6次

a{2,} a出现2次以上

a{2,6} a出现2-6次

匹配多个字符:

(ab)+ ab出现一次以上

或运算:

a (cat|dog) 匹配 a cat or a dog

a cat|dog 匹配 a cat or dog

字符类:

匹配由abc构成的数据【abc】+ abc出现一次以上 abc aabbcc

【a-zA-Z0-9】 ABCabc123

^ 排除 【^0-9】 匹配0-9之外的数据(包括换行符)

元字符

\d 数字字符 \d+ 匹配一个以上的数字

\D 非数字字符

\w 单词字符 单词 数字 下划线即英文字符

\W 非单词字符

\s 空白符 包含空格和换行符

\S 非空白字符

\b 单词的边界 单词的开头或结尾 单词与符号之前的边界

\B 非单词的边界 符号与符号 单词与单词的边界

. 任意字符不包含换行符

. 表示. 通过\进行了转意

^ 匹配行首 $ 匹配行尾

使用 () 来将其中括起来的内容

或运算

a (dog|cat) 可以匹配 a dog 和 a cat

使用 [] 来限定取值范围,表示只能取值自 其中的内容 ; [a,b,c] 表示可以取 a b c 这三个元素构成的内容;可以使用 a-z来表示 a到z这个区间的内容

  • ^:表示字符串的开头。如果将 ^ 放在模式的开头,则要求匹配从字符串的开头开始。例如,^abc 匹配以 “abc” 开头的字符串。
  • $:表示字符串的结尾。如果将 $ 放在模式的末尾,则要求匹配到字符串的结尾。例如,abc$ 匹配以 “abc” 结尾的字符串。

常用正则表达式模式

  1. 匹配邮箱地址^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$
  2. 匹配电话号码^\d{3}-\d{3}-\d{4}$
  3. 匹配 URL^(https?|ftp)://[^\s/$.?#].[^\s]*$
  4. 匹配日期^\d{4}-\d{2}-\d{2}$