2010-07-04 2 views
1

Как удалить ссылки из необработанного HTML-текста? У меня есть:Удалить ссылки из текстового файла

Foo bar <a href="http://www.foo.com">blah</a> bar foo 

и хотите получить:

Foo бар бла-бар Foo

впоследствии.

+0

вы работаете с конкретным языком – spinon

+0

ли из текстового файла, с горсткой ссылок, или это полностью общий HTML? Если последний, и вы просто хотите что-то быстро и дешево, загляните в 'w3m -dump' или' lynx -dump'. Если вы хотите использовать повторяемый или настраиваемый инструмент, ответ Брайана прав, найдите парсер HTML для среды, которую вы хотите использовать. – sarnold

+0

@spinon - он использует «SED» [Stream Editor] - UNIX ... @Marko ... размещение REGEX в начале его вопроса не решит его проблемы –

ответ

2

Вы ищете синтаксический анализ HTML с регулярными выражениями и this won't work in all but the simplest cases, так как HTML не является регулярным. Более надежным решением является использование парсера HTML. Многочисленные существуют для многих разных языков.

2
sed -re 's|<a [^>]*>([^<]*)</a>|\1|g' 

Но ответ Брайана прав: Это должно быть использовано только в самых простых случаях.

0

$ echo 'Foo bar <a href="http://www.foo.com">blah</a> bar foo' | awk 'BEGIN{RS="</a>"}/<a href/{gsub(/<a href=\042.*\042>/,"")}1'

Foo бар бла бар Foo

Смежные вопросы