s 修饰符:dotAll 模式

正则表达式中,点(.)是一个特殊字符,代表任意的单个字符,但是行终止符(line terminator character)除外。

以下四个字符属于”行终止符“。

  • U+000A 换行符(\n
  • U+000D 回车符(\r
  • U+2028 行分隔符(line separator)
  • U+2029 段分隔符(paragraph separator)
  1. /foo.bar/.test('foo\nbar')
  2. // false

上面代码中,因为.不匹配\n,所以正则表达式返回false

但是,很多时候我们希望匹配的是任意单个字符,这时有一种变通的写法。

  1. /foo[^]bar/.test('foo\nbar')
  2. // true

这种解决方案毕竟不太符合直觉,所以现在有一个提案,引入/s修饰符,使得.可以匹配任意单个字符。

  1. /foo.bar/s.test('foo\nbar') // true

这被称为dotAll模式,即点(dot)代表一切字符。所以,正则表达式还引入了一个dotAll属性,返回一个布尔值,表示该正则表达式是否处在dotAll模式。

  1. const re = /foo.bar/s;
  2. // 另一种写法
  3. // const re = new RegExp('foo.bar', 's');
  4. re.test('foo\nbar') // true
  5. re.dotAll // true
  6. re.flags // 's'

/s修饰符和多行修饰符/m不冲突,两者一起使用的情况下,.匹配所有字符,而^$匹配每一行的行首和行尾。

s 修饰符:dotAll 模式相关推荐

  1. 08.28 JavaScript 边界 选择修饰符 模式单元 修饰符 正则的使用

    #### 边界的修饰 * \b     单词边界 * \B     不是单词边界 * ^      字符串开始边界 * $       字符串结束边界 * 先行断言(正向预查)   (?=) * 负向 ...

  2. PHP正则表达式修饰符

    i(PCRE_CASELESS) 如果设置了这个修饰符,则表达式不区分大小写. m(PCRE_MULTILINE) 默认的,PCRE认为目标字符串值是单行字符串(即使他确实包含多行).行开始标记(^) ...

  3. php正则中不支持g修饰符吗,Pattern Modifiers – 规则表达式的修饰符(转载)发现PHP里有些正则表达式的应用和PERL里的不一样。。所…-PHP教程,PHP应用...

    pattern modifiers – 规则表达式的修饰符 下面是当前规则表达式里可用的修饰. 括号内的名字是那些修饰符的内部 pcre 名字. i (pcre_caseless) 如果设置了这个修饰 ...

  4. Mongoose 预定义模式修饰符 Getters 与 Setters 自定义修饰符

    一.mongoose 预定义模式修饰符 lowercase.uppercase .trim mongoose 提供的预定义模式修饰符,可以对我们增加的数据进行一些格式化. var UserSchema ...

  5. (13)C#传智:访问修饰符,简单工厂模式,序列化与反序列化,部分类,密封类,接口(第13天)

    内容超级多,慢慢来... 深入BinaryFormatter 一.访问修饰符 public: 公共的,公开的     private:私有的,只能在当前类的内部访问     protected:受保持 ...

  6. java正则全局匹配_正则表达式全局匹配模式(g修饰符)

    正则表达式g修饰符: g修饰符用语规定正则表达式执行全局匹配,也就是在找到第一个匹配之后仍然会继续查找. 语法结构: 构造函数方式: new RegExp("regexp",&qu ...

  7. 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...

    前言 相信大家在平时的工作中对于public和private的修饰权限是用的比较多的.对于protected和无修饰符用的是比较少的.我也一样,在读书的时候,又看到了这个问题,于是,在此进行总结和详细 ...

  8. 黑马vue---13、事件修饰符的介绍

    黑马vue---13.事件修饰符的介绍 一.总结 一句话总结: .stop 阻止冒泡:input type="button" value="戳他" @click ...

  9. __block和__weak修饰符的区别

    block下循环引用的问题 __block本身并不能避免循环引用,避免循环引用需要在block内部把__block修饰的obj置为nil __weak可以避免循环引用,但是其会导致外部对象释放了之后, ...

最新文章

  1. idea log 不输出error_还在使用console.log()吗?Bunyan:一个简单易用的JS日志框架
  2. 深圳市收运体系运营管理_房地产企业如何搭建运营管理体系
  3. JAVA删除临时文件
  4. 【CentOS】安装部署jenkins从git获取代码[转]
  5. 面试官让我用channel实现sync包里的同步锁,是不是故意为难我?
  6. bzoj1691/luogu2869 [USACO07DEC]挑剔的美食家 (STL::set)
  7. html给table加外边框,如何给table添加边框
  8. java怎么从数据库中查询_java – 从数据库中检索的实体与查询中的情况相同
  9. java 访问器_网络之美 JavaScript中Get和Set访问器的实现代码
  10. row_number() over
  11. 位姿矩阵求逆 (搬运)
  12. SQL教程数据库视频数据分析教程Sql Server|MySQL|Oracle视频教程
  13. 内置RTK北斗高精度定位的智能安全帽完成调试,上报至smarteye平台
  14. windows10桌面_32位windows10系统正式版推荐下载
  15. 硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件
  16. qq空间个人档html代码,最新整理QQ空间全代码
  17. 发起一款国产开源CRM系统,有想共同参与的进来哈,己发出SVN库
  18. 开发一个安卓App-计算器-改色换肤(完结篇)
  19. 华为路由TC7102实现一根网线分离同时支持路由器无线网络使用和电信IPTV机顶盒播放的方法步骤
  20. 搜索引擎蜘蛛 ajax,了解搜索引擎蜘蛛习性 助力内页顺畅收录

热门文章

  1. IOS组件绑定无效错误
  2. CentOS系统VMware克隆后 重新设置成eth0
  3. [Android1.6]横竖屏切换时自动弹出键盘的问题
  4. Enterprise Library 4.1 Caching Block 图文笔记
  5. 请问,怎么在DBGRID中改变CELL内容
  6. MyEclipse6.5安装SVN插件的三种方法
  7. 实用juniper SRX NAT小技巧。
  8. OSI七层与TCP/IP四层模型
  9. java开发中常用到小方法
  10. 157. [USACO Nov07] 奶牛跨栏