正则表达式-匹配特殊字符

匹配特殊字符
   .字符在正则表达式里有着特殊的含义。如果模式里需要一个.,就要想办法来告诉正
则表达式你需要的是.字符本身而不是它在正则表达式里的特殊含义。为此,你必须在.的
前面加上一个\(反斜杠)字符来对它进行转义。\是一个元字符(metacharacter,表示
“这个字符有特殊的含义,而不是字符本身含义”)。
    我们再来验证一次刚才的例子,这次我们使用了\对.进行转义:
    文本
    sales1.xls
    orders3.xls
    sales2.xls
    sales3.xls
    apac1.xls
    europe2.xls
    na1.xls
    na2.xls
    sa1.xls
    正则表达式
    .a.\.xls
    结果
    sales1.xls
    orders3.xls
    sales2.xls
    sales3.xls
    apac1.xls
    europe2.xls
    (na1.xls)
    (na2.xls)
    (sa1.xls)
    分析
    .a.\.xls解决了问题。第一个.匹配n(在前两个匹配结果里)或s(
在第3个匹配结果里),第2个.匹配1(在第1个和第3个匹配结果里)或2(
在第2个匹配结果里)。接下来,\.匹配文件名与扩展名之间的分隔符.本身
,最后的xls匹配它本身。(事实上,即使没有最后面的xls,这次搜索的结
果也会与我们预想的一样;加上xls可以避免匹配到诸如sa3.doc之类的文件
名。)
    在正则表达式里,\字符永远出现在一个有着特殊含义的字符序列的开头
,这个序列可以由一个或多个字符构成。刚才看到的是\.序列,后面还会看到
更多使用了\字符的例子。
    注意:如果需要搜索\本身,就必须对\字符进行转义;相应的转义序列是
两个连续的反斜杠字符\\。
    提示:我们刚才说到的,.可以匹配任何一个字符,这一说法并非绝对正确
。在绝大多数的正则表达式实现利里,.只能匹配除换行符以外的任何单个字符。
      
      

关于PHP博客

PHP blogger

博客-致力于分享PHP技术的开发心得, 记录站长生活的点点滴滴,PHP博客采用PHP 面向对象编程+Smarty模板引擎+Mysql数据库 开发(全站纯静态化与伪静态化)
QQ:334192009
电邮:admin@PHPdesigner.org

本站搜索

本站最新文章

博客最近档案

友情链接