正则表达式之锚位 (Perl 版)
创始人
2024-01-28 08:54:34
0
锚位含义
\A匹配字符串的绝对开头
\Z匹配字符串的绝对末尾
\z匹配行尾(允许后面出现换行符)
脱字符(^)Perl 4 开始:字符串开头锚位
Perl 15 开始:行首锚位
$Perl 4 开始:字符串结尾锚位
Perl 15开始:行末锚位
\b匹配单词首尾

\A:匹配字符串的绝对开头,如果在开头处匹配不上,是不会顺移到下个位置进行尝试的。

$_ = "https://www.csdn.net";if (m{https?://}i) {
}

\z:匹配字符串的绝对结尾,后面再无任何东西。如果要允许后面出现换行符,可以用 \Z

$_ = "amazing.png";if (m{\.png\z}i) {
}

同时使用首尾锚位,可以确保模式能匹配给定字符串的全部,一个常见的例子是用来匹配空行:

# 这里第二个值由 tab、换行符、空格组成,它是一个空行
@_ = ("This is a wilma line","","barney is on another line");my $linecnt = 1;foreach (@_) {printf "Is line_%d empty? %d\n", $linecnt, ((m/\A\s*\Z/) ? 1 : 0);$linecnt += 1;
}

脱字符(^) 出现在字符集定义的开头时,表示对字符集的范围取反;出现在字符集之外时,某些时候就是元字符,表示字符串首锚位(如果只想匹配脱字符(^)本身,用反斜线进行转义即可)

@_ = qw/bedRock fred Barney Wilma/;foreach (@_) {# 匹配 首位置 不是小写字母 的字符串if (m/^[^a-z]/) {# 匹配 "Barney" 和 "Wilma"say "'$_' matched!";} else {# 不匹配 "bedRock" 和 "fred"say "Skipped '$_'.";}
}

美元符($) 用于表示字符串结尾的锚位。

$_ = "This ends in fred";if (/fred$/) {
}

很多时候脱字符(^)和美元符($)的使用就和 \A 和 \Z 一样,但是脱字符(^)和美元符($)配合修饰符 \m 使用还可以用于多行文本的匹配:

$_ = "This is a wilma line
barney is on another line
but this ends in fred
and a final dino line";if (/fred$/m) {say "It matched!";
}if (/^barney/m) {say "It matched!";
}

这就告诉我们,修改历史代码需谨慎,书写的时候也是。。。

单词锚位\b 匹配的是一组连续的 \w 字符的开头或结尾。
\w 指的是可作为表示符的字符,因此它的范围并不仅仅只是严格意义上的单词,比如在 ASCII 语义下它指的是 [0-9a-zA-Z_] 这样一个范围,在 Unicode 语义下它的范围要大得多。

@_ = qw/selfishness fishery blowfish/;foreach (@_) {if (/\bfish/) {# 匹配 "fishery"}if (/fish\b/) {# 匹配 "blowfish"}
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...