Есть ли способ точно сопоставить этот текстовый шаблон с Regex? - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь сопоставить только текст, который начинается с хэша (#), за которым следуют слова, разделенные дефисами (-).

Пример текста: #stack-overflow-questions

Я пробовал это, но это не самое лучшее.Есть ли способ, которым я могу улучшить Regex, чтобы быть более точным?

const questionFormat = /^#(\w*-\w*)\1*/;

Ответы [ 3 ]

2 голосов
/ 10 апреля 2019

Вероятно, ищите #, затем один или несколько \w+- (ноль или более, если #stack разрешено), а затем один или несколько \w:

const rex = /#(?:\w+-)+\w+/;

Live Пример:

const rex = /#(?:\w+-)+\w+/;
console.log(rex.exec("blah blah #stack-overflow-questions blah blah")); // Finds it
console.log(rex.exec("blah blah #stack blah blah")); // null
1 голос
/ 10 апреля 2019

Ниже следует сделать работу.

^#[a-z\-]+
0 голосов
/ 10 апреля 2019
  var str = "blah blah #stack-overflow-questions #stack-overflow-questiosss blah blah";
  var pat = /#[\w+-]{2,}/g;
  var result = str.match(pat);

найдено 2 совпадений

{2,} раньше не ловил только "-", но все еще может ловить "-"

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