找回密码
 注册
查看: 4265|回复: 0

perl语言正则表达式锚定

[复制链接]
发表于 2011-11-14 20:39:25 | 显示全部楼层 |阅读模式
默认情况下,如果模式在字符串开头没能匹配上,它会顺着字符串下去,直到匹配上为止。如果使用了锚定(anchors)则可
以要求模式在特定的位置进行匹配。
符号^(脱字字符◆)表示在字符串的开头进行匹配,而符号$则表示在结尾◆。因此,模式/^fred/只匹配字符串的开头部分;
它不会匹配上manfred man。而/rock$/只在结尾处匹配;其不会匹配上knute rockne。
◆是的,在模式中^,有其它的用途。在字符类中,如果将其放在最前面,将会得到此集合的补集。但在字符类外面,它就成了元字符,从
而有了别的含义:表明是字符串的开头。字符就那么几个,有时你不得不重复使用它们
◆事实上,它能匹配字符串的结尾部分,或者换行符处。因此会匹配一个字符串的结尾部分,无论其是否含有换行符。许多人都不担=关心
这种区别,但记住/^fred$/能同时匹配上“fred”和“fred\n”。
有时,想同时使用这两个锚定来确保匹配整个字符串。一个经常使用的例子是/^\s*$/,它将匹配一个空行(blank line)。这
里的“blank(空白)”,可以是空白符,如制表符,空格等,它们是不可见的。能被匹配上的行看起来都是一样的,因此这
个模式将所有的空白按一种方法来处理。如果没有锚定,则它还会匹配上非空行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-12-4 01:24 , Processed in 0.027507 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表