珀尔 |正则表达式中的运算符
先决条件: Perl |常用表达
正则表达式是一个字符串,它是提供文本字符串匹配的不同字符的组合。正则表达式也可以称为正则表达式或正则表达式。
应用正则表达式的基本方法是使用绑定运算符=~(Regex Operator)和 !~(Negated Regex Operator)。
Perl 中有三种类型的正则表达式运算符:
- 匹配正则表达式
- 替换(搜索和替换)正则表达式
- 全局字符转写正则表达式
1)模式匹配或匹配正则表达式:匹配运算符“m//”用于将字符串或语句与正则表达式匹配。运算符(m//) 中使用的正斜杠作为分隔符,此分隔符也可以是 m{}、m() 和 m>< 等。表达式写在两个正斜杠之间运算符。
Syntax: m/PATTERN/
这里,PATTERN 是要在字符串中搜索的正则表达式
让我们看一些说明模式匹配的示例:
在下面的示例中,字符串和正则表达式匹配,成功时返回“找到匹配”,否则返回“未找到匹配”。
示例 1:
#!/usr/bin/perl
# Initializing a string
$a = "GeeksforGeeks";
# matching the string and
# a regular expression and returns
# match found or not
if ($a =~ m/for/)
{
print "Match Found\n";
}
else
{
print "Match Not Found\n";
}
输出:
Match Found
示例 2:
#!/usr/bin/perl
# Initialising an string
$a = "GeeksforGeeks";
# matching the string and
# a regular expression and returns
# match found or not
if ($a =~ m:abc:)
{
print "Match Found\n";
}
else
{
print "Match Not Found\n";
}
输出:
Match Not Found
这里,在上面的代码中,使用了不同的分隔符':'而不是'/',这表明没有必要使用'/'作为分隔符。 2)替换(搜索和替换)正则表达式:替换运算符“s///”用于搜索特定的单词,然后用给定的正则表达式替换它。运算符( s/// ) 中使用的正斜杠充当分隔符。
Syntax: s/PATTERN/REPLACEMENT/;
这里的 PATTERN 是要替换为 REPLACEMENT 正则表达式的正则表达式。
让我们看一些说明替代正则表达式的示例:
在下面的示例中,首先搜索 PATTERN 词,然后将其替换为 REPLACEMENT 词。
示例 1:
#/user/bin/perl
# Initialising a string
$string = "GeeksforGeeks is a computer science portal.";
# Calling the substitute regular expression
$string =~ s/GeeksforGeeks/gfg/;
$string =~ s/computer science/cs/;
# Printing the substituted string
print "$string\n";
输出:
gfg is a cs portal.
示例 2:
#/user/bin/perl
# Initialising a string
$string = "10001";
# Calling the substitution regular expression
$string =~ s/000/999/;
# Printing the substituted string
print "$string\n";
输出:
19991
3)全局字符音译正则表达式:翻译或音译运算符“tr///”或“y///”用于用给定的单个字符替换所有出现的字符。运算符中使用的正斜杠( tr/// 和 y/// )充当分隔符。
Syntax:
tr/SEARCHLIST/REPLACEMENTLIST/
y/SEARCHLIST/REPLACEMENTLIST/
这里 SEARCHLIST 是所有出现的字符都将被替换为 REPLACEMENTLIST 中的字符。
让我们看一些说明翻译正则表达式的示例:
在下面的示例中,所有出现的“G”都被替换为“g”,并带有两个不同的运算符“tr///”和“y///”。
示例 1:
#/user/bin/perl
# Initialising a string
$string = 'GeeksforGeeks';
# Calling the tr/// operator
$string =~ tr/G/g/;
# Printing the replaced string
print "$string\n";
输出:
geeksforgeeks
示例 2:
#/user/bin/perl
# Initialising a string
$string = 'GeeksforGeeks';
# Calling the y/// operator
$string =~ y/G/g/;
# Printing the replaced string
print "$string\n";
输出:
geeksforgeeks