замена ссылки HTML на регулярные выражения и каналы Yahoo - PullRequest
1 голос
/ 12 января 2010

мой вопрос похож на тот, что здесь:

Регулярное выражение на Yahoo! трубы

Мой статус Gmail подключен к Твиттеру через Friendfeed, но, к сожалению, они обрезают текст ссылки, и мои ссылки не работают, как только они попадают в Twitter. Я должен быть в состоянии принять это:

 <div style="margin-top:2px;color:black;">/good jquery tips 
   <a rel="nofollow" style="text-decoration:none;color:#00c;" target="_blank"  href="http://james.padolsey.com/javascript/things-you-may-not-know-about-jquery/" title="http://james.padolsey.com/javascript/things-you-may-not-know-about-jquery/">
      http://james.padolsey.com/javascr...
   </a>
</div> 

и замените усеченную ссылку атрибутом href, чтобы она выглядела следующим образом:

 <div style="margin-top:2px;color:black;">/good jquery tips 
   <a rel="nofollow" style="text-decoration:none;color:#00c;" target="_blank"  href="http://james.padolsey.com/javascript/things-you-may-not-know-about-jquery/" title="http://james.padolsey.com/javascript/things-you-may-not-know-about-jquery/">
      http://james.padolsey.com/javascript/things-you-may-not-know-about-jquery/
   </a>
</div> 

спасибо за помощь!

1 Ответ

0 голосов
/ 13 января 2010

Предупреждения Энтони: вы не можете безопасно анализировать HTML с регулярными выражениями, поэтому, пожалуйста, взвесьте риски, если вы решите использовать Pipes.

Предполагая, что вы хотите заменить только эту конкретную структуру, и ожидаете, что она сломается, если что-либо в источнике изменится незначительно, для ваших целей будет достаточно следующего:

заменить:

(<a\s[^>]*href=")(.*?)("[^>]*>).*?(</a>)

с:

$1$2$3$2$4

(с использованием параметров s и i )

...