Используйте регулярные выражения для сопоставления постоянных ссылок Blogger (blogspot) - PullRequest
0 голосов
/ 17 января 2012

Я (взломал) это регулярное выражение, которое сопоставляет любые слова между дефисами и разделяет их, исключая статьи, состоящие из 1 символа. Причина, по которой мне нужны эти слова, заключается в том, что Blogger удается остановить URL-адрес в 39 символов И не прерывать слова. Это работает до сих пор:

^((([a-zA-Z0-9]{2,39})-)+)(?:([a-zA-Z0-9]{1})-)((([a-zA-Z0-9]{2,39})-)+){2,39}$

Проверено против /wishing-you-a-very-merry-christmas-and-a-happy-new-year.html
Совпадения: wishing-you-a-very-merry-christmas-and-
Строка замены: $1 (не работает !!), в результате:

Как мне получить 1-буквенные статьи, которые НЕ печатать в регулярном выражении результатов? И как мне проверить и удалить последние - в моих результатах?

1 Ответ

1 голос
/ 17 января 2012

Вы не можете построить это с одним регулярным выражением.

Часть с длиной не более 39 символов и не заканчивающаяся - не проблема.

^\/?([\w-]{3,39})(?<!-).*

Посмотреть это on Regexr

(?<!-) - это утверждение с предварительным просмотром, которое гарантирует, что строка не заканчивается дефисом.

Но вы не можете одновременно удалить подстроки длиной 1.

Само по себе это тоже не проблема

(?<=[/-]|^)[^-]-|-[^-](?=[-./]|$)

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

...