正则表达式.exec()丢失匹配字符串的第一个数字

时间:2016-08-04 22:30:27

标签: javascript regex node.js

我正在构建nodeJS JavaScript应用程序,并尝试使用正则表达式处理一些markdown文件。

我有以下代码:

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的输出。

我的第一个角色在哪里,我怎么能回来!

1 个答案:

答案 0 :(得分:1)

Helpful tool

嗯,你的捕获小组在第一个特征之后开始

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

它说:

  • ``` - 这3个字符
  • 。 - 一个任何字符< - 这里是你的消费但未被捕获的
  • ( - 开始捕获组
  • ...... etc

如此有效的模式将是:

```(.*?\n)