正则表达式

参考文章:
https://github.com/alsotang/node-lessons/tree/master/lesson9

《正则表达式30分钟入门教程 》:
http://deerchao.net/tutorials/regex/regex.htm

《正则表达式之:零宽断言不『消费』》:
http://fxck.it/post/50558232873

js中的正则表达式需要注意的地方:
第一,
js 中,对于四种零宽断言,只支持 零宽度正预测先行断言 和 零宽度负预测先行断言 这两种。
第二,

js 中,正则表达式后面可以跟三个 flag,比如 /something/igm。

他们的意义分别是,

i 的意义是不区分大小写
g 的意义是,匹配多个
m 的意义是,是 ^ 和 $ 可以匹配每一行的开头。

第三,

大家知道,. 是不可以匹配 \n 的。如果我们想匹配的数据涉及到了跨行,比如下面这样的。

var multiline = require('multiline');

var text = multiline.stripIndent(function () {
/*
    head
    ```
    code code2 .code3```
    ```
    foot
*/
});

如果我们想把两个 “` 中包含的内容取出来,应该怎么办?

直接用 . 匹配不到 \n,所以我们需要找到一个原子,能匹配包括 \n 在内的所有字符。

这个原子的惯用写法就是 [\s\S]

var match1 = text.match(/^```[\s\S]+?^```/gm);
console.log(match1) // => [ '```\ncode code2 code3```\n```' ]

// 这里有一种很骚的写法,[^] 与 [\s\S] 等价

var match2 = text.match(/^```[^]+?^```/gm)
console.log(match2) // => [ '```\ncode code2 .code3```\n```' ]

完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值