perl语言的文字处理模式(regular expression)
如果在unix中曾经使用过sde、awk、grep这些指令的话,相信对于perl语言中的文字处理模式(regular expression) 应该不会感到陌生才对。在perl语言中因为有这个功能,所以对于字符串的处理能力是非常强有力的。regular expression可视为用来处理字符串的一种模式(pattern),其使用的格式为/pattern/。在perl语言的程序设计中,经常可以看得到类似语法的应用,在cgi程序设计中也不例外。只要能够善用文字处理模式的话,要处理任何难的字 符串皆可迎刃而解,在本章中笔者会用深入浅出的方式来介绍regufar expression的用法。
一、文字处理(regularexpression)的常用语法
以下是文字处理模式中,/pattern/常用到的语法:
/pattern/ 说明除了换行字符/n外,找寻只有一个字符的字符串 x? 找寻0个或是1个x字符 x* 找寻0个或是0个以上的x字符 .* 找寻0个或是0个以上的任何字符 x+ 找寻1个或是1个以上的x字符 .+ 找寻1个或是1个以上的任何字符 {m} 找寻刚好是m各个数指定的字符 {m,n}找寻在m个个数以上、n个个数以下指定的字符 {m,} 找寻m个个数以上指定的字符 [] 找寻符合[]内的字符 [^] 找寻不符合[]内的字符 [0-9] 找寻符合0到9的任何一个字符[a-z] 找寻符合a到z的任何一个字符 [^0-9] 找寻不符合0到9的任何一个字符 [^a-z]找寻不符合a到z的任何一个字符 ^ 找寻字符串开头的字符 $ 找寻字符串结尾的字符 d找寻一个digit(数字)的字符,和[0-9]语法一样 d+ 找寻一个digit(数字)以上的字符串,和[0-9]+语法一样 d 找寻一个non-digit(非数字)的字符,和[^0-9]语法一样 d+ 找寻一个non-digit(非数字)以上的字符串,和[^0-9]+语法一样 w 找寻一个英文字母或是数值的字符,和[a-za-z0-9]语法一样 w+ 找寻一个以上英文字母或是数值的字符串,和[a-za-z0-9]+语法一样 w 找寻一个非英文字母或是数值的字符,和[^a-za-z0-9]语法一样 w+ 找寻一个以上非英文字母或是数值的字符串,和[^a-za-z0-9]+语法一样 s 找寻一个空白的字符,和[ntrf]一样 s+ 找寻一个以上空白的字符,和[ntrf]+一样s 找寻一个非空白的字符,和[^ntrf]一样 s+ 找寻一个以上非空白的字符,和[^ntrf]+一样 b 找寻一个不以英文字母、数值为边界的字符串 b 找寻一个以英文字母、数值为边界的字符串 abc 找到符合a字符或是b字符或是c字符的字符串 abc找到一个含有abc的字符串 (pattern)。
()这个符号会记忆所找寻到的字符串,是一个很实用的语法 第一个()内所找到的字符串变成$1这个变量或是1变量 第二个()内所找到的字符串变成$2这个变量或是2变量 以此类推,笔者会在下一个小节中详细介绍它的用法/pattern/i i这个参数是代表忽略英文大小谢的意思,也就是在找寻字符串的时候,不会去考虑英文的大小写 如果要在pattern模式中找寻一个有特殊意义的字符,要在这个字符前加上这个符号,这样才会让这个特殊字符失效。
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 注册表 操作系统 服务器 应用服务器