REGEX: повторяющийся символ, который является необязательным - PullRequest
1 голос
/ 17 марта 2020

У меня есть проблема с регулярным выражением, в которой я должен захватить эти примеры выходных данных (github.com, medium.com, www.nytimes.com, www.theguardian.com, techcrunch.com) в ссылках, проблема в том, что какая-то ссылка не ' у меня нет "www", так что я это мое регулярное выражение:

    https?:\/\/([w]{3}?\.?)

Я подумал, что, сделайте www optional, но я не хочу его захватывать. Спасибо!

редактировать: я нашел решение!

    https?:\/\/([\w\-\.]+)

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

В то время как ваше предлагаемое решение достигает желаемого эффекта, предложенный способ будет состоять в использовании группы без захвата

, что превратит это:

https?:\/\/([w]{3}?\.?)

В это:

https?:\/\/(?:[w]{3}?\.?)
0 голосов
/ 17 марта 2020

Просто заключите группу символов в круглые скобки :

/https?:\/\/([w]{3}\.)?\w+/g

На метасимволы, следующие за ним, будет влиять что-либо внутри скобок.

Полные документы здесь .

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

Вот полное объяснение:

  1. [w]{3} должен быть заключен в круглые скобки;
  2. Его последующая точка также должна быть в круглых скобках , поскольку это также необязательно;
  3. Добавлен глобальный тег (кажется, вы уже добавили его, судя по скриншоту).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...