JS中正则表达式所缺少的匹配模式(单行模式)

本文深入解析正则表达式中的小数点匹配规则,纠正常见误区,并提供正确匹配包括换行符在内的任意字符的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单行模式允许小数点(.)匹配包括换行符(\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>
就可以匹配成功

[color=red]最终结果应该用(.|\n)或(.|\n)[/color]

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

转自:http://www.cnblogs.com/dongzhiquan/archive/2009/12/12/1994690.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值