问题:
为什么字符边界'b对我不起作用?
两个对“b”的错误观念:
一,它相当于"s+"
二,它是空白字符和非空字符的边界
以上两个观念都是不对的。
'b' 是一个介于'w'或者'w'字符之间的部份(也就是,'b'是'word'字符的边界)。就像`^', `$', 以及其它所有的’锚‘一样,它是一个没有宽度的声明。因此它并不吃掉任何的字符。perl帮助页面描述了所有正则表达式标识符的属性。
这里有个`b'的错误应用,以及它的修正的例子。
"two words" =~ /(w+)b(w+)/; # 错误
"two words" =~ /(w+)s+(w+)/; # 正确
" =matchless= text" =~ /b=(w+)=b/; # 错误
" =matchless= text" =~ /=(w+)=/; # 正确
虽然它们可能做不是你想让它们做的事,`b' 和`b'仍是很有用的。例如一个正确使用`b'的例子,可以看在多行中匹配相同的字符的例子。
一个使用`b'的例子是模式`bisb'。这个只会找出在单词中的'is',比如"thistle",但是它不会匹配"this" 或者 "island".
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 注册表 操作系统 服务器 应用服务器