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

perl语言正则表达式使用m//匹配

[复制链接]
发表于 2011-11-14 20:36:01 | 显示全部楼层 |阅读模式
我们曾经将模式放在一对正斜线(//)里面,如/fred/。这是m//(模式匹配)的一种简写。同qw//操作一样,可以使用任何
成对的分隔符。因此,可以使用m(fred), m<fred>, m{fred}, m[fred],或者m,fred,, m!fred!, m^fred^,其它非成对的分隔符也
可以◆。
◆非配对分隔符是那些“左”和“右”是相同的,两头使用的是同一个符号。
如果使用正斜线(/)作为分隔符,则可以省略掉前面的m。由于Perler 喜欢少输入字符,因此大多数模式使用的是正斜线,
如/fred/。
使用一个不会在模式中出现的字符作为分隔符◆。如果想写一个匹配web URL 开头部分的模式,你可能使用/http:\/\//来匹
配http://。但如果使用m%http://%将更易于阅读,书写,维护,以及调试。使用花括号({})作为分隔符也是很平常的。
如果你使用的是专为程序员设计的文本编辑器,由于它能自动从开花括号跳到闭花括号,这对于维护代码将非常有用。
◆如果使用配对的分隔符,那不用当心模式内部会出现这些分隔符,因为通常模式内部的分隔符也是配对的。因此,m(fred(.*)barney),
m{\w{2,}}, m[wilma[\n \t]+betty]是正确的。对于尖括号(<和>),它们通常不是配对的。如模式m{(\d+)\s*>=?\s*(\d+)},如果使用尖括号,
模式中的尖括号前因当使用反斜线(\),以免模式被过早的结束掉。
◆记住,正斜线不是元字符,如果它不是分隔符,则不需在前面使用反斜线。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 22:50 , Processed in 0.024719 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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