2016-08-02 41 views
1

以下代码正确匹配{{{}}}之间的所有内容,但示例'line3'因为括号内容包含换行符。如何配合呢?Javascript匹配包括换行符在内的所有内容

const testcase = ` 
    line1: {{{ content1 }}} 
    line2: {{{ content2 }}} 
    line3: {{{ 
     content3 
    }}} 
    line4: {{{ content4 }}} 
`; 

const regex = /^(\s+)(.*?)(\{\{\{ [^]*? \}\}\})/gm; 

let match; 
while ((match = regex.exec(testcase)) != null) { 
    console.log(match); 
} 

回答

2

你可以使用这个表达式:

/^(\s+)(.*?)({{{[^]*?}}})/gm 

RegEx Demo

问题是在你的正则表达式{{{其正在因为有一个换行符它不匹配line3线后空间的存在之后{{{

相关问题