PHP регулярное выражение для получения содержимого определенного элемента span - PullRequest
0 голосов
/ 23 января 2009

Мне нужна помощь ... Я немного (читай всего) n00b, когда дело доходит до регулярных выражений, и мне нужна помощь в написании одного, чтобы найти определенный фрагмент текста, содержащийся в определенном теге HTML из PHP. 1001 *

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

<span lang="en">English Content</span><span lang="fr">French content</span> ... etc ...

Я бы хотел извлечь только текст элемента для определенного языка.

Может кто-нибудь помочь?

Ответы [ 3 ]

6 голосов
/ 23 января 2009

Для PHP доступно множество парсеров HTML. Я предлагаю вам проверить один из них (например: PHP Simple HTML DOM Parser ).

Попасть в ногу с попыткой прочитать HTML с помощью регулярных выражений намного проще, чем вы думаете, и намного сложнее избежать, чем вы хотите (особенно если вы не знаете досконально регулярное выражение и ваш ввод не гарантирует быть на 100% чистым HTML).

0 голосов
/ 23 января 2009

Это самый классный класс, который позволяет вам выполнять SQL-подобные запросы на HTML-страницах. Возможно, стоит посмотреть:

HTML SQL

Я использовал это кучу, и мне это нравится.

Надеюсь, это поможет ...

0 голосов
/ 23 января 2009

(плохо, не работает) пример, который показывает, почему вы не должны использовать регулярные выражения для анализа HTML.

/<span lang="en">(.*)<\/span>/

Будет выводить:

English Content</span><span lang="fr">French content

Больше материала для чтения:

Разбор: за пределами регулярного выражения

для-2,295,485th времени-DO-НЕ-PARSE-HTML-С-Регуляр-EXPRESSIONS

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