Регулярное выражение, которое будет захватывать группы с исключениями в Javascript - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь сопоставить группу, которая содержит слово, но только при условии, что перед словом стоит дефис и другое слово.

Возьмем, к примеру, этот пример:

Проходящие примеры

docs-world
docs-foo
docs-hello
hello-world
hello

Неудачные примеры

docs

Слово, о котором идет речь, - «документы».Если к слову добавляется дефис, я хочу правильно сопоставить его с группой.

Бонусные баллы : если вы можете сделать то же самое для "refs".

Вот пример

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Просто взгляните позитивно.

console.log(
    ['docs-world', 'docs-foo', 'docs-hello', 'docs']
        .map(RegExp.prototype.test, /docs(?=-)/)
);
0 голосов
/ 14 февраля 2019

Не совсем уверен, понимаю ли я вопрос, но может ли это сработать?

([a-zA-Z]+-[a-zA-Z]+)

Это соответствует одной или нескольким буквам, затем дефису, затем одной или нескольким буквам снова.

foo  (not matched)
-foo  (not matched)
foo-bar  (matched)

Попробуйте вживую здесь: https://regex101.com/r/qIknsi/1

Редактировать, если нужно сопоставить только документы или ссылки, затем дефис, затем слово, тогда это должно работать:

((?:docs|refs)-[a-zA-Z]+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...