习惯使用perl4的开发者总是用^表示字符串开头锚位,用$表示字符串结尾锚位,比如\^https://\ 将会匹配所有以https://开头的字符串,同样,\.bmp$\将会匹配所有以.bmp结尾的字符串。但是到了perl5,有了\A ,\Z,\z三种锚位,这三种锚位中,\A与^相同,表示匹配以某模式开头的字符串,而\z就与$相同了……
但是如果有了/m,则^表示行首而不再是字符串的串首!以字符串"this is a wilma line \nbarney is on another line \n but this ends in fred\n and a final dino line"为例,串首只有一个,就是this,而行首却有四个,分别是this,barney,but和and,因此,模式/^barney/不能匹配该字符串,因为barney不是串首元素;但是,/^barney/m可以匹配该字符串,因为加了/m以后,^就表示匹配行首了,条件更宽松了……同样的,/fred$/不能匹配该字符串,因为fred不在串尾位置。但是/fred$/m却可以匹配该字符串,因为加了/m就表示匹配行尾而不是串尾了,故可以匹配了……
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。