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