正则表达式

正则表达式

常用的正则表达式

用途

正则表达式

示例

说明

Email地址

^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

test@mail.com

常用邮箱格式

域名

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

www.example.com

支持多级域名

Internet URL

^[a-zA-Z]+://[^\s]+$

https://abc.com

常用URL格式

手机号码

^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$

13812345678

中国大陆手机号

身份证号

(^\d{15}$)|(^\d{18}$)|(^\d{17}[\dXx]$)

110101199003071234

15/18位,末位可为X

IPv4地址

((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}

192.168.1.1

IPv4格式

常用语法

常用的元字符

代码

说明

.

匹配除换行符以外的任意字符

\w

匹配字母或数字或下划线或汉字

\s

匹配任意的空白符

\d

匹配数字

\b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

常用的限定符

代码/语法

说明

*

重复零次或更多次

+

重复一次或更多次

?

重复零次或一次

{n}

重复n次

{n,}

重复n次或更多次

{n,m}

重复n到m次

常用的反义代码

代码/语法

说明

\W

匹配任意不是字母,数字,下划线,汉字的字符

\S

匹配任意不是空白符的字符

\D

匹配任意非数字的字符

\B

匹配不是单词开头或结束的位置

[^x]

匹配除了x以外的任意字符

[^aeiou]

匹配除了aeiou这几个字母以外的任意字符

懒惰限定符

代码/语法

说明

*?

重复任意次,但尽可能少重复

+?

重复1次或更多次,但尽可能少重复

??

重复0次或1次,但尽可能少重复

{n,m}?

重复n到m次,但尽可能少重复

{n,}?

n重复n次以上,但尽可能少重复

其他语法

代码/语法

说明

\a

报警字符(打印它的效果是电脑嘀一声)

\b

通常是单词分界位置,但如果在字符类里使用代表退格

\t

制表符,Tab

\r

回车

\v

竖向制表符

\f

换页符

\n

换行符

\e

Escape

\0nn

ASCII代码中八进制代码为nn的字符

\xnn

ASCII代码中十六进制代码为nn的字符

\unnnn

Unicode代码中十六进制代码为nnnn的字符

\cN

ASCII控制字符。比如\cC代表Ctrl+C

\A

字符串开头(类似^,但不受处理多行选项的影响)

\Z

字符串结尾或行尾(不受处理多行选项的影响)

\z

字符串结尾(类似$,但不受处理多行选项的影响)

\G

当前搜索的开头

\p{name}

Unicode中命名为name的字符类,例如\p{IsGreek}

(?>exp)

贪婪子表达式

(?-exp)

平衡组

(?im-nsx:exp)

在子表达式exp中改变处理选项

(?im-nsx)

为表达式后面的部分改变处理选项

(?(exp)yes|no)

把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no

(?(exp)yes)

同上,只是使用空表达式作为no

(?(name)yes|no)

如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no

(?(name)yes)

同上,只是使用空表达式作为no

基本构成

正则表达式的基本构成包括:

  • 字符:直接匹配某个字符,例如 a 匹配字符 a,1 匹配数字 1。
  • 元字符:有特殊意义的字符,例如:
    • .:匹配任意字符(除换行符外)。
    • \d:匹配任何数字,等价于 [0-9]。
    • \w:匹配任何字母、数字或下划线,等价于 [a-zA-Z0-9_]。
    • \s:匹配任何空白字符(如空格、制表符、换行符等)。
    • ^:匹配字符串的开始。
    • $:匹配字符串的结束。
  • 字符集和字符范围
    • [abc]:匹配 a、b 或 c 中的任意一个字符。
    • [a-z]:匹配任意小写字母。
    • [^abc]:匹配除 a、b、c 以外的任意字符。
  • 量词:控制字符匹配的次数,例如:
    • *:匹配 0 次或多次。
    • +:匹配 1 次或多次。
    • ?:匹配 0 次或 1 次。
    • {n}:匹配 n 次。
    • {n,}:匹配至少 n 次。
    • {n,m}:匹配 n 到 m 次。
  • 分组:可以将多个字符或子表达式组合起来作为一个单元:
    • (abc):匹配字符串 "abc"。
    • a|b:匹配 a 或 b。
posted @ 2025-10-14 11:47  酷比灯  阅读(15)  评论(0)    收藏  举报