Работая с RSS-потоком поиска Twitter в Yahoo Pipes, я пытаюсь очистить длинные ссылки Twitter и заменить их их сокращенными версиями. Для этого я хочу сопоставить любой текст ссылки, который НЕ находится в домене Twitter. Обычно это ссылки t.co.
Вот пример того, что я хочу сделать:
Повернуть
<a href="http://t.co/AiyTQKaAoU">http://www.denverpost.com/environment/ci_26064841/colorado-coal-mine-mulls-appeal-after-federal-court ...</a>
В
<a href="http://t.co/AiyTQKaAoU">http://t.co/AiyTQKaAoU</a>
Мое регулярное выражение начиналось как <a .*?href=['""](.+?)['""].*?>(.+?)</a>
, что соответствует всем ссылкам.
Затем я попытался <a .*?href=['""]!(www\.twitter\.com\/?)['""].*?>(.+?)</a>
удалить twitter.com из результатов, но это не сработало. Что я делаю не так?
P.S. Мне не нужно трогать ссылки Twitter, потому что это испортит все ссылки «@» и «#».
Дополнение: Решение @ Avinash-Raj работает в демонстрационной версии, но не в Yahoo Pipe. Кто-нибудь знаком с регулярным выражением в Yahoo Pipes?
2 ответа
В Yahoo Pipes должно происходить что-то вроде этого:
- шаблон:
href="(http://t.co[^"]*)"[^>]*>http://[^<]*
- замена:
href="$1">$1
Вот демонстрационный канал и вот еще один, на основе вашей трубы.
PS: вы знаете, что можете поместить несколько замен регулярных выражений в один оператор Regex . Так легче читать.
Вы можете попробовать следующее регулярное выражение, чтобы захватить значение атрибута href и снова использовать его в заменяющей части для изменения тега <a>
. Он должен работать на строках, в которых нет строки twitter.com
^(?:(?!.*twitter\.com.*$))(<a href=\"([^\"]*)\">).*?(<\/a>)
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.
Rolling Coal: Conservatives ‘screw’ Obama by modifying trucks to spew toxic black smoke <a rel="nofollow" target="_blank" href="http://t.co/BWxgcA8j3h">http://www.rawstory.com/rs/2014/07/07/rolling-coal-conservatives-screw-obama-by-modifying-trucks-to-spew-toxic-black-smoke/ …</a>