Regex для определения курсивных обозначений уценки - PullRequest
0 голосов
/ 16 мая 2018

У меня есть следующая тестовая строка:

const string = '*Foo* **Foo** ***Foo*** ** ****';

И я хочу использовать RegExp для извлечения следующих совпадений с named capturing group с именем content:

STRING:   *Foo* **Foo** ***Foo*** ** ****
MATCH:    ^^^^^           ^^^^^   ^^
CONTENT:   ^^^             ^^^

Было бы также неплохо сопоставлять пробелы.

const string = '* Foo * ** Foo ** *** Foo *** * * ** **';

Это должно привести к следующим совпадениям:

STRING:   * Foo * ** Foo ** *** Foo *** * * ** **
MATCH:    ^^^^^^^             ^^^^^^^   ^^^
CONTENT:    ^^^                 ^^^      ^

Я пробовал несколько шаблонов регулярных выражений, но, похоже, не получил правильный шаблон для \*, но не \*{2}.

Вот один из них:

/(?!\*\*\s*?.+?\s*?\*\*)\*\s*?(?<content>.+?)\s*?\*/g

Это результат: https://regex101.com/r/OqSMuO/3

Как мне заставить его работать? Спасибо!

1 Ответ

0 голосов
/ 16 мая 2018

Я не знаю, если это именно то, что вы ищете, но, возможно, это даст вам импульс:

(?:^|(?<=\s))(?:\*\s*(?<content1>[^*]+)\s*?\*|\*{3}\s*(?<content3>[^*]*)\s*\*{3})(?:$|(?=\s))

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...