正则表达式语法

2022-10-31 09:21:08 浏览数 (1)

普通字符

普通字符包括没有显示指定为元字符的所有可打印和不可打印字符。包括所有大小写字母、所有数字、所有标点符号和一些其他符号。

怎么判断一个长度为1的字符串是否为数字?

代码语言:javascript复制
[0-9]

[]方括号表示这是一个字符组,代表一位字符。方括号中的数字0-9表示只要待匹配的最底层与其中的任何一个字符相同,程序就会认为匹配成功,反之则认为匹配失败

为什么是0-9而不是9-0?因为在ASCAII码中,0的码值较小,9的码值较大。码值小的在前,码值大的在后。

同样道理,判断一个长度为1的字符串是不是小写英文字母,可以写成

代码语言:javascript复制
[a-z]

注意,我们不能用[A-z]来匹配所有的大小写英文字母。因为这个范围之中也包括了其他的特殊字符。正确做法是

代码语言:javascript复制
[A-za-z]或者[a-zA-Z]

怎么判断一个长度为2的字符串是否为数字呢?其实,只要写两遍就好了

代码语言:javascript复制
[0-9][0-9]

如果要判断用户输入的是Y或者y,只要这样写正则表达式:

代码语言:javascript复制
[Yy]

当允许的字符范围只有一个的时候,可以省略[]。例如,要判断用户有没有输入Yes/yes,只要这样写

代码语言:javascript复制
[Yy]es

字符转义

在上面我们表示数字范围时用的[0-9]之中的‘-’表示范围,并不表示字符’-‘本身,这类字符我们称之为元字符。这类字符在匹配之中有特殊含义。如果我们想要匹配’-‘本身的话,就要写成’-‘。其实,在正则表达式中,匹配元字符,就是在字符前面加上‘’。比如,匹配'[‘本身,就写成

代码语言:javascript复制
[[]

匹配‘0’ ‘-’ ‘9’ 这三个字符,就写成

代码语言:javascript复制
[0-9]

这样就只会匹配‘0’ ‘-’ ‘9’ 这三个字符

常见的元字符可以去查表。

分组构造

分组构造描述了正则表达式的子表达式,用来捕获字符串的子字符串。就是用括号括起来的

匹配模式

匹配模式是指匹配的时候使用的规则。用不同的匹配模式可能会改变正则表达式的识别,有可能会改变正则表达式中字符的匹配规定。

1、不区分大小写模式

2、单行模式

也叫做点号通配。会改变‘.’的匹配方式。默认情况下,元字符‘.’不会匹配换行符。有时候想匹配任何字符的时候,就可以使用单行模式来使得‘.’能匹配任何字符。

当然也可以使用[sS] [wW]等技巧来匹配所有字符。

3、多行模式

多行模式改变的是‘^’和‘$’的匹配方式。默认模式下,‘^’和‘$’匹配的是整个字符串的起始位置和结束位置。但是,在多行模式下,他们将会匹配字符串内部某一行文本的起始位置和结束位置。

0 人点赞