2016-08-02 4 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ラインと一致していませ作っているあなたの正規表現で{{{の後にスペースが存在することです{{{以降。

関連する問題