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

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

我的第一个 Angular 色去哪里了,我怎样才能把它找回来!

最佳答案

Helpful tool

嗯,您的捕获组在第一个字符之后开始

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

它说:

  • ``` - 这 3 个字符
  • 。 - 任意 Angular 色之一<- 这是您消耗但未捕获的 Angular 色
  • ( - 启动捕获组
  • ...等等

所以有效的模式是:

```(.*?\n)

关于javascript - 正则表达式 .exec() 丢失匹配字符串的第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38778403/

相关文章:

javascript - 如何使用键盘快捷键打开弹出窗口?

javascript - 如何使用 jQuery 正确添加和删除 div 标签?

php - 获取两个字符之间的所有内容

c# - 正则表达式问题

javascript - await async - ESLint 中的竞争条件错误 require-atomic-updates

javascript - 如何检测夜间模式事件 - CSS/JavaScript?

python - 在 python 中使用正则表达式从 HTML 中提取内容

angularjs - 为什么我不能从名为 'users' 的文件夹加载文件?

javascript - 如何在 mongoose js 中嵌套相同的模式

mysql - Node 没有为成功的存储过程返回值