以下提供叁个技巧使得你的正规表示式易懂又好维护。
#把每行变成「第一个字、冒号,和剩馀的字元数」这样的格式。 s/^(\w+)(.*)/ lc($1) . ":" . length($2) /ge;
/x修饰子会要直译器忽略正规表示式内的任意空白 (在特定字元类别 [character class]中例外),同时也让你在式子中使用平常的注解方法。你应该能想像得到, 加上一些空白与注解帮助会有多大。 /x让你把下面这行:
s{<(?:[^>'"]*".*?"'.*?')+>}{}gs;变成:
s{ < #箭头括弧区起始 (?: #划分「勿追溯前段」(non-backreferencing)的括弧 [^>'"] * #有零个以上、不是 >、 ',或 "的字元 #或者是 ".*?" #一段双引号圈起来的区域 (吝啬式对应) #或者是 '.*?' #一段单引号圈起来的区域 (吝啬式对应) ) + #以上区域出现一次或多次 > #箭头括弧区结束 }{}gsx; #用空字串来替换;也就是杀掉虽然它看来还是不够简明易懂,但至少大大有助於解释这个模式 (pattern)的意义。
/字元来区隔,但实际上用几乎任何字元来作都行。perlre文件中有说明。例如,上面的 s///便是用大括号来当区隔字元的。选择另一个区隔字元可以免除在模式中得避开 (quote)区隔字元的困扰。例如:s/\/usr\/local/\/usr\/share/g; #选错区隔字元的後果【译注: #常被戏称为「搭牙签」症候群 ;-)】
s#/usr/local#/usr/share#g; #这样不是好多了?!
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器