Perl 正则表达式

2024 年 8 月 29 日 | 阅读 3 分钟

正则表达式是由定义特定模式的字符串组成。perl 正则表达式的语法和 awk, grep 以及 sed 非常相似。

Perl 中有三个正则表达式运算符

  • 匹配正则表达式运算符
  • 替换正则表达式运算符
  • 转换正则表达式运算符

Perl 匹配运算符

Perl 匹配运算符有多种修饰符。 它主要用于将字符串或语句与正则表达式匹配。


匹配运算符修饰符

运算符描述
cg即使全局匹配失败,也继续搜索
g全局搜索所有匹配项
i搜索匹配项,忽略大小写
m如果字符串具有换行符,则 $ 和 ^ 将针对换行符边界而不是字符串边界进行匹配
o仅允许表达式评估一次
s使用 . 匹配换行符
x在表达式中使用空格

Perl 匹配运算符 =~

匹配运算符 =~ 用于匹配给定字符串中的单词。它区分大小写,这意味着如果字符串具有小写字母,而你要搜索大写字母,则它将不匹配。

输出

Matching
Not Matching

Perl 匹配运算符 !~

它与前一个运算符 (=~) 相反。 如果字母匹配,则输出为不匹配,反之亦然。

输出

Not Matching
Matching

Perl 匹配运算符与 $_

您也可以针对特殊的默认变量 $_ 进行匹配。

输出

Matching
Not Matching

Perl 匹配运算符与 m

匹配运算符 m 也用于匹配给定字符串中的单词。

输出

Matching
Not Matching

Perl 匹配运算符与 $1, $2...

$1, $2 将根据指定的括号打印单词。

输出

1: CuNaHg 2: CuNa 3: Cu 4: Na 5: Hg 6: 

Perl 匹配运算符与 ?

它打印给定字符串中括号内的匹配字符。

输出

Cu
Na
Hg 

Perl 替换运算符

替换运算符只是匹配运算符的扩展。 它允许替换与某些新文本匹配的文本。

它的基本语法是


Perl 替换运算符与 s///

在这里,我们用 s/// 将第一部分的 liquid 替换为 solid。

在第二部分中,'liquid' 被 'solid' 全局替换,使用 s///g。

输出

solid will remain liquid until it is evaporated
solid will remain solid until it is evaporated

Perl 转换运算符

转换运算符类似于替换运算符。 但是,转换不使用正则表达式搜索替换值。

它的基本语法是


Perl 转换运算符替换一个字母

在这里,所有 'l' 字母将通过转换运算符替换为 'z' 字母。

输出

ziquid wizz remain ziquid untiz it is evaporated

Perl 转换运算符替换多个字母

在这里,所有 'l' 和 'i' 字母将通过转换运算符替换为 'z' 和 'x' 字母。

输出

zxquxd wxzz remaxn zxquxd untxz xt xs evaporated
下一个主题Perl split 函数