Как удалить дубликат URL профиля с помощью регулярного выражения? - PullRequest
0 голосов
/ 26 декабря 2018

Я пытался исправить регулярное выражение.Но я не мог понять это.https://regexr.com/45h27. Я всегда получаю дубликат URL.Необходимо удалить дубликат URL.Было бы полезно, если бы я получил объяснение с вашей стороны.Спасибо.

Это выражение, которое я пробовал

((http|https):\/\/|)(www\.|)facebook\.com\/[a-zA-Z0-9.]{1,}

Мне нужно отфильтровать дублирующиеся URL-адреса.

1 Ответ

0 голосов
/ 26 декабря 2018

Попробуйте

((?:https?:\/\/)?(?:www\.)?facebook\.com\/[\w.]*)(?=[^w.])(?!.*\1)

Это ваше регулярное выражение (несколько упрощенное) с добавлением отрицательного взгляда вперед, чтобы удостовериться, что URL не повторяется далее в тексте.Это означает, что в списке сохраняется только последнее совпадение .

((?:https?:\/\/)?(?:www\.)?facebook\.com\/[\w.]*)

Смотрите здесь,

Это объяснитэто для вас графически. .

Объяснение lite:

(:? ... ) делает не захваченную группу.? делает предшествующий ему символ или группу необязательными.(?=[^w.]) - положительный взгляд в будущее - убедиться, что весь URL совпадает (за ним следует что-то, а НЕ символ слова или точка).(?!.*\1) - это негативный взгляд на будущее, поэтому группа захвата (часть URL, захваченная между ()), которой предшествует что-либо (.*), не повторяется.

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