Найти несколько '/' косых черт в строке URL-адресов для карты сайта - PullRequest
1 голос
/ 21 мая 2019

Мы пытаемся очистить карту нашего сайта, так как наш магазин Magento создал дубликаты страниц.Я хочу использовать регулярное выражение для выделения или инвертирования выделения всех страниц, которые связаны с URL-адресом верхнего уровня.

Например, мы хотим найти первую строку-

/site/product << </p>

/site/category/product/

/site/category/product

Есть ли способ найти только два экземпляра косой черты во всей строке, которые не находятся рядом друг с другом?

Заранее благодарен за помощь.

I 'мы пробовали что-то вроде этого

(.*(?<!\/)$)

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Я хотел бы дать быстрый ответ на эту проблему на случай, если она поможет кому-то еще в будущем. В нашей карте сайта было слишком много повторяющихся URL-адресов из-за неправильной настройки нашего магазина Magento. Вместо того, чтобы отправлять карту сайта с 20 000+ URL-адресами верхнего уровня, мы решили вручную удалить элементы верхнего уровня.

Совсем не идеально.

Мы настроили код генерации PHP карты сайта, чтобы получить URL-адреса верхнего уровня как site / category / id / ###. Затем мы использовали Notepad ++ для закладки и удаления этих строк соответственно.

0 голосов
/ 21 мая 2019

Ваш шаблон (.*(?<!\/)$) соответствует любому символу, кроме новой строки, до конца строки и после этого утверждает, что то, что слева, не является косой чертой, которая даст вам первое и третье совпадение.

Вы можете сопоставить с начала строки ^ 2 раза прямой косой черты, а затем 1+ раз не косой черты или новой строки [^/\n]+, а затем установить конец строки $

^/[^/\n]+/[^/\n]+$

Regex demo

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