You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式dotall用s、sticky用y的历史原因是什么?

正则表达式s(dotall)和y(sticky)标志的历史原因

关于s(dotall)标志

  • 这个标志的用法是沿用了Perl正则的传统。早在Perl的正则实现里,就用/s修饰符来让.匹配包括换行符在内的所有字符,对应"singleline"模式(后来也被称为dotall)。ECMAScript在引入该特性时,直接借鉴了Perl的这一约定,没有选用Dotall的首字母D——一方面是为了和主流正则实现的使用习惯保持一致,另一方面D在部分正则方言中已有其他用途(比如Perl里/D用于匹配非数字),避免功能冲突。

关于y(sticky)标志

  • sticky是ES6新增的特性,它的首字母s已经被dotall标志占用,所以需要从剩余未被使用的字母里选择。当时可选字母有限(g/i/m/u已被占用),最终选定y主要有两点原因:
    • 首先y未被其他正则标志占用,不会和既有功能产生冲突;
    • 其次它能和全局标志g形成明显区分——sticky的核心是锚定上次匹配的结束位置,和g的全局匹配行为差异很大,独特的字母能减少使用时的混淆。

内容的提问来源于stack exchange,提问作者Ádám Bozzay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:05:19