正则表达式 字符、字符组

2022-08-28 19:32:13 浏览数 (1)

字符

字符是正则表达式中的基本元素,基于字符构建正则表达式。

下面是perl的正则表达式代码,含义是把content中的abc替换成大写的ABC。这里的a就是字符,表示在目标字符串中匹配a

代码语言:perl复制
$content =~ s/abc/ABC/g;

字符组

字符组是用中括号[]包裹的一串字符,表示匹配字符组中任意一个字符。下面正则表达式的含义是将abc中的任意一个字符替换成D

代码语言:perl复制
$content =~ s/[abc]/D/g;

字符组的否定形式是在字符组的开头使用^符号,表示匹配非字符组中的字符。下面正则表达式的含义是将非abc的字符替换成D

代码语言:perl复制
$content =~ s/[^abc]/D/g;

字符组使用-表示范围(只能在字符组中生效),比如[0-9]表示匹配从09的某个数字,[a-z]表示匹配从az的某个字母。当-放在字符组开头,匹配-字符本身。下面正则表达式的含义是将字母或者数字替换为空(删掉)。

代码语言:perl复制
$content =~ s/[0-9a-zA-Z]//g;

如这样的字符组[0-9a-zA-Z]较为常用,所以正则表达式提供了一些通用的字符表示法:

字符表示法

含义

t

制表符

n

换行符

r

回车符

s

空白字符(空格,制表)

S

非空白字符

w

a-zA-Z0-9

W

w取反

d

0-9

D

d取反

. (点号)

任意字符(换行符除外)

这些字符表示法可以用在字符组中(除了点号,点号在字符组中匹配点号),也可用在字符组外。下面表达式含义是去掉行首尾的空白字符。

代码语言:perl复制
$line =~ s/^s //;
$line =~ s/s $//;

0 人点赞