2016-08-04 5 views
0

Я создаю javascript-приложение nodeJS и пытаюсь использовать regex для обработки некоторых файлов разметки.regex .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

Используйте '. * 'для более быстрого regex и' $ 'вместо' \ n' для более широкой совместимости. Однако вам придется использовать модификатор 'm'. – 4castle

ответ

1

Helpful tool

хммм ваша группа захвата начинается после того, как первый charater

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

он говорит:

  • `` `- это 3 Charaters
  • . - один любой charater < - здесь потребляется ваш charater, но не захватили
  • (- старт группы захвата
  • ... и т.д.

так действует модель будет:

```(.*?\n) 
Смежные вопросы