2016-08-04 69 views
0

我正在構建一個nodeJS JavaScript應用程序,並試圖使用正則表達式來處理一些降價文件。正則表達式.exec()丟失匹配字符串的第一個數字

我有以下代碼:

var title = /```.(.*?\n)/.exec(codeBlock); 
console.log('Code: ' + codeBlock); 
console.log('Title: ' + title[1]); 

,輸出是:

Code: ```TypeScript 
animationSet = new animationModule.Animation([{ 
    target: view, 
    rotate: 360, 
    duration: 3000, 
    iterations: Number.POSITIVE_INFINITY, 
    curve: view.ios ? UIViewAnimationCurve.UIViewAnimationCurveLinear : new android.view.animation.LinearInterpolator 
}]); 
animationSet.play().catch((e) => { 
    console.log("Animation stopped!"); 
}); 
// Call animationSet.cancel() to stop it; 
``` 
Title: ypeScript 

通知,而不是完整的「頭銜」我找的第一個字符。如果我添加一個空格,例如代碼塊的第一行是``` TypeScript,那麼我會得到Title: TypeScript的輸出。

我的第一個角色在哪裏?我怎樣才能找回來!

+0

使用'。 *'爲了更快的正則表達式,'''而不是'\ n'爲了更廣泛的兼容性,不過你必須使用'm'修飾符。 – 4castle

回答

1

Helpful tool

hmmmm您捕獲組開始它說後首次系統字符

/```.(.*?\n)/ 

  • ``` - 這3個charaters
  • 。 - 一個任何系統字符< - 這裏就是你的系統字符消耗,但沒有捕獲
  • ( - 開始捕獲組
  • ...等

所以有效的方式將是:

```(.*?\n) 
相關問題