Найти значение c между тегами - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь написать регулярное выражение, чтобы найти значение из строки @update (между открытием /*@file и закрытием @*/

Пример кода:

/*@file
######################################################
@package        Webapp
@title          your_title
@version        1.0
@tags           tag1,tag2
@lines          215
@created        2020/04/03 20:42:49
@updated        2020/03/03 20:44:49
@description
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
######################################################
@*/

В этом случае желаемое значение равно 2020/03/03 20:44:49

Я закончил свои попытки

[\/][*]@file\n([\S\s]*?)update([\S\s]*?)[@][*][\/]

И мой JS код

currentText.replace(/[\/][*]@file\n([\S\s]*?)update([\S\s]*?)[@][*][\/]/g, "SOME TEXT");

Спасибо заранее за вашу помощь

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вы можете использовать это регулярное выражение с группой захвата:

/\/\*@file[^]*?@updated[ \t]*(.+)[^]*?@\*\//

Демонстрация RegEx

Подробности RegEx:

  • \/\*@file: сопоставить текст /*@file
  • [^]*?: сопоставить 0 или любой символ (включая символы новой строки) (ленивый)
  • @updated[ \t]*: сопоставить текст @updated с последующим 0 или более пробелами / табуляциями
  • (.+): сопоставление и захват значения, которое мы хотим получить
  • [^]*?: сопоставление 0 или любых символов (включая символы новой строки) (ленивый)
  • @\*\/: текст совпадения @*/
0 голосов
/ 03 апреля 2020

Я думаю, что это может быть правильно

const Alt = currentText.replace(/ /g, '').substring((currentText.replace(/ /g, '').indexOf('@updated')+8),(currentText.replace(/ /g, '').indexOf('@updated')+26))
Alt = Alt.substring(0,10) + ' ' + Alt.substring(11, 18)
console.log(Alt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...