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]   表示任意字符是误人子弟,错误的(也是原话,呵呵)

转载于:https://www.cnblogs.com/dongzhiquan/archive/2009/12/12/1994690.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值