Regex: извлекать все после 2 символов или начала - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь извлечь субдомены + домены из некоторых свободно отформатированных URL.Некоторые начинаются с http: //, а другие нет.Я рассмотрел случай http: // со следующим регулярным выражением:

(?<=(\/\/))[^\/]*

, которое соответствует чему-то вроде

https://stackoverflow.com/questions/ask

до

stackoverflow.com

, что правильно.Однако теперь я хочу, чтобы он соответствовал описанному выше случаю И

stackoverflow.com/questions/ask

-

stackoverflow.com

Я использую какой-то сторонний инструмент, который не дает четкого указания, что они используют для регулярных выраженийразбор.Как можно сделать это выражение?

1 Ответ

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

Если инструмент основан на Python, вы можете использовать это регулярное выражение:

(?:(?<=://)|^)[^/:]+(?!.*://)

Отрицательный прогноз (?!.*://) предотвратит сопоставление строки, которая имеет :// впереди, таким образом избегая совпадения https в начале.

RegEx Demo 1

в противном случае используйте:

(?<=:\/\/|^)[^\/:]+(?!.*:\/\/)

RegEx Demo 2

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