Perl | Regex备忘单

正则表达式 都是生活的重要组成部分 Perl 编程。它用于搜索指定的文本模式。在这种情况下,一组字符一起构成了搜索模式。它也被称为 regexp .当用户学习正则表达式时,可能需要快速查看那些他不经常使用的概念。为了提供这种功能,我们创建了一个regex备忘单,其中包含正则表达式中使用的不同类、字符、修饰符等。

null

字符类

字符类 用于匹配字符串。这些类允许用户匹配用户事先不知道的任何字符范围。

班级 解释
[abc] 它只包含一个指定字符,即“a”、“b”、“c”或“.”
[a-j] 它包括从a到j的所有字符。
[a-z] 它包括从a到z的所有小写字符。
[^az] 它包括除a和z之外的所有字符。
W 它包括所有字符,比如[a-z,a-z,0-9]
D 它与[0-9]等数字匹配
[ab][^cde] 这与字符a和b后面不应该跟c、d和e相匹配。
s 它与[f]匹配]即换页、制表符、换行符和回车。
W w的补码
D d的补码
s s的补码

例子:

# Perl program to demonstrate
# character class
# Actual String
$str = "45char" ;
# Prints match found if
# its found in $str
# by using w
if ( $str =~ /[w]/)
{
print "Match Found" ;
}
# Prints match not found
# if it is not found in $str
else
{
print "Match Not Found" ;
}


输出:

Match Found

锚定

锚与任何角色都不匹配。相反,它们会像之前、之后或角色之间那样匹配特定位置。

锚定 解释
^ 它在字符串的开头匹配。
$ 它在字符串的末尾匹配。
它在从w到w的字符串的单词边界处匹配。
A. 它在字符串的开头匹配。
它在字符串结尾或换行符之前匹配。
Z 它只在字符串的末尾匹配。
G 它在指定的位置pos()匹配。
p{….} Unicode字符类,如IsLower、IsAlpha等。
P{….} Unicode字符类的补码
[:类:] POSIX字符类,如数字、小写、ascii等。

例子:

# Perl program to demonstrate
# use of anchors in regex
# Actual String
$str = "55" ;
# Prints match found if
# its found in $str
# using Anchors /
if ( $str =~ /[[:alpha:]]/)
{
print "Match Found" ;
}
# Prints match not found
# if it is not found in $str
else
{
print "Match Not Found" ;
}


输出:

Match Not Found

元字符

元字符用于匹配Perl正则表达式中的模式。所有的元字符都必须是 逃脱 .

人物 解释
^ 检查字符串的开头。
$ 检查字符串的结尾。
. 除纽琳以外的任何角色。
* 匹配0次或更多次。
+ 匹配1次或多次。
? 匹配0次或更多次。
() 用于分组。
用于引号或特殊字符。
[] 用于一组字符。
{} 用作重复修饰语。

量词

这些用于检查特殊字符。量词有三种类型

  • ‘?’ 它与0或1个字符匹配。
  • ‘+’ 它匹配一个或多个字符。
  • ‘*’ 它匹配0个或更多出现的字符。
使用量词 解释
A. 它检查“a”是出现0次还是1次。
a+ 它会检查“a”是否出现1次或更长时间
a* 它检查“a”是否出现0次或更长时间
a{2,6} 它会检查“a”是否出现2到6次
a{2,} 它检查“a”是否出现2到无限次
a{2} 它会检查“a”是否出现两次。

例子:

# Perl program to demonstrate
# use of quantifiers in regex
# Actual String
$str = "color" ;
# Prints match found if
# its found in $str
# using quantifier ?
if ( $str =~ /colou?r/)
{
print "Match Found" ;
}
# Prints match not found
# if it is not found in $str
else
{
print "Match Not Found" ;
}


输出:

Match Found

修饰语

修饰语 解释
G 用于替换所有出现的字符串。
gc 它允许在g匹配失败后继续搜索。
s 它将字符串视为一行。
它关闭了区分大小写的功能。
十、 它忽略了所有的空白。
(?#文本) 它用于在代码中添加注释。
(?:模式) 它用于匹配非捕获组的模式。
(?|模式) 它用于匹配分支测试的模式。
(?=模式) 它用于积极的前瞻性断言。
(?!模式) 它用于否定的前瞻断言。
(<=模式) 它用于积极的回顾性断言。
它用于否定的后视断言。

空白修改器

修饰语 解释
用于插入选项卡空间
回车符
用于插入新行。
H 用于插入水平空白。
五、 用于插入垂直空白。
L 用于小写字符。
U 用于大写字符。

量词——修饰语

最大的 最小的 解释
? ?? 它可以发生0次或1次
+ +? 它可能会发生一次或多次。
* *? 它可以发生0次或更多次。
{3} {3}? 必须精确匹配3次。
{3, } {3, }? 必须匹配至少3次。
{3, 7} {3, 7}? 必须匹配至少3次,但不超过7次。

分组和捕获

在正则表达式内部,这些组由“1”表示,在正则表达式外部,这些组由“$1”表示。这些组可以通过列表上下文中的变量赋值获取,称为 俘虏 .分组结构 (…) 创建捕获组,称为 捕获缓冲区 .

(…) 这些用于分组和捕获。
1, 2, 3 在正则表达式匹配期间,这些用于捕获缓冲区。
$1, $2, $3 在成功匹配期间,这些用于捕获变量。
(?:…) 这些用于分组而不捕获。(这既不是1美元,也不是1美元)
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享