日期:2014-05-16  浏览次数:20349 次

JS中正则表达式所缺少的匹配模式(单行模式)
单行模式允许小数点(.)匹配包括换行符(\n)在内的任意字符(出自Regex Match Tracer).

依据<<Microsoft Windows 脚本技术>>chm文档中所言:

小数点(.)匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。

正则表达式对象模式仅有如下三种:

g (全文查找出现的所有 pattern)
i (忽略大小写)
m (多行查找)

即没有单行匹配模式

但chm文档中所说要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式是错误的


(以下摘自:关于正则表达式:如何匹配所有字符)

  小数点( .)一量进入[]中间就变成真的小数点了(\.)
  
  不信可以这样测试: 
  asdfasdf<span   style="font-size:   22px">asdfasdf</span>asdfasdf 
  正则表达式: 
  <span   style=\"font-size\:   22px\">[^.]+</span> 
  就可以匹配成功 

最终结果应该用(.|\n)或(.|\n)

手册上说   [.\n]   表示任意字符是误人子弟,错误的(也是原话,呵呵)

转自:http://www.cnblogs.com/dongzhiquan/archive/2009/12/12/1994690.html