正则表达式 都是生活的重要组成部分 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