1. 正则表达式

(1) 什么是正则表达式

正则表达式是一种功能强大而灵活的文本处理工具。


(2) 正则表达式的主要作用

正则表达式主要用于:验证字符串,即检验输入的字符串是否符合给定的模式。

例如,验证输入的电话号码、手机号码、×××号码等是否符合给定的模式。


(3) 正则表达式中的特殊字符

正则表达式用来描述特定的字符串模式,例如正则表达式“a{3}”表示由三个字符“a”构成的字符串,相当于普通字符串“aaa”;正则表达式“\d”表示任意一个数字字符。在正则表达式中,有些字符具有特殊的含义,如下表所示。


正则表达式中的特殊字符

特殊字符

.

表示任意一个字符

|

表示或者的意思。例如:“a|b”表示a,或者b

^

^ab,表示以ab开始的串。

$

xy$,表示以xy结尾的串。

[abc]

表示abc中的任意一个字符

[^abc]

表示除abc以外的任意一个字符

[a-z]

介于az中的任意一个字符

[A-Z]

介于AZ中的任意一个字符

[a-zA-Z]

介于az,或AZ中的任意一个字符

-

[]结合使用,表示一段字符的范围。例如:

[a-z],表示介于az中的任意一个字符。

\s

空白符(空格、tab、回车、换行)

\S

非空白符

\d

09的任意一个数字,等同于[0-9]

\D

非数字,等同于[^0-9]

\w

一个字符,可以是字母、数字或下划线,

等同于[a-zA-Z_0-9]

\W

一个字符,不能是字母、数字或下划线,

等同于[^a-zA-Z_0-9]



(4) 正则表达式中表示字符出现次数的符号

在正则表达式中,还可以通过一些特殊符号来表示字符出现的次数,如下表所示。

正则表达式中表示字符出现次数的符号

特殊字符

*

0次或者多次

+

1次或者多次

?

0次或者1

{n}

恰好n

{n, m}

至少n次,不多于m次。



(5) 一些常用的正则表达式

常用的正则表达式

正则表达式

^\d+(\.\d+)*$

数字

^[0-9]*[1-9][0-9]*$

正整数

^\(-?\d+)(\.\d+)?$

浮点数

[\u4e00-\u9fa5]

中文字符

^[a-zA-Z0-9]+$

由数字和26个英文字符组成的字符串

(\S)+[@]{1}(\S)+[.]{1}(\w)+

E-mail地址

\d{3}-\d{8}|\d{4}-\d{7}|\d{4}-\d{8}

国内电话号码

^[0-9]{6}$

邮政编码

^[0-9]{11}$

手机号码

^\d{15}|\d{18}

×××号码