📜  珀尔 |正则表达式中的运算符

📅  最后修改于: 2022-05-13 01:55:27.620000             🧑  作者: Mango

珀尔 |正则表达式中的运算符

先决条件: Perl |常用表达

正则表达式是一个字符串,它是提供文本字符串匹配的不同字符的组合。正则表达式也可以称为正则表达式或正则表达式。
应用正则表达式的基本方法是使用绑定运算符=~(Regex Operator)和 !~(Negated Regex Operator)。

Perl 中有三种类型的正则表达式运算符:

  1. 匹配正则表达式
  2. 替换(搜索和替换)正则表达式
  3. 全局字符转写正则表达式

1)模式匹配或匹配正则表达式:匹配运算符“m//”用于将字符串或语句与正则表达式匹配。运算符(m//) 中使用的正斜杠作为分隔符,此分隔符也可以是 m{}、m() 和 m>< 等。表达式写在两个正斜杠之间运算符。

这里,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/// ) 中使用的正斜杠充当分隔符。

这里的 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/// )充当分隔符。

这里 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