Регулярные выражения помогают - PullRequest
0 голосов
/ 16 апреля 2010

Если бы у меня был следующий HTML:

<li><a href="aaa"> Thisislink1</a></li>
<li><a href="abcdef"> Thisisanotherlink</a></li>
<li><a href="12345"> Onemorelink</a></li>

Где каждая ссылка будет отличаться по длине и значению.

Как я могу искать значения внутри ссылки (IE: Thisislink1, Thisisanotherlink и Onemorelink) с помощью поисковой фразы, скажем «другой». Таким образом, в этом примере будет возвращена только «Thisisanotherlink», но если я изменил поисковую фразу на «link», будут возвращены все 3 значения.

Ответы [ 3 ]

2 голосов
/ 16 апреля 2010

Не используйте регулярные выражения. Используйте DOMDocument .

0 голосов
/ 16 апреля 2010

Это нужно сделать за два прохода:

  1. Извлечение текста из всех ссылок в документе. XSL или XPath должны работать для этой цели. При извлечении текста сохраняйте копию DOM, чтобы вы могли прикреплять к нему информацию и текст, сообщая вам, откуда текст извлекается (если вам понадобится эта информация позже, вы можете этого не делать). В качестве альтернативы просто прикрепите содержимое атрибута href к тексту.

    Обязательно извлеките весь необходимый текст (например, атрибуты заголовка или альтернативный текст конструкций типа <a href><img alt></a>.

  2. Поиск в выделенном тексте искомой фразы.

  3. (Необязательно) используйте информацию, которую вы установили ранее, для сопоставления с DOM, чтобы выяснить, из какого элемента вы собрали текст, и выделите его. Если вы извлекли атрибут href, вы можете просто создать новую ссылку, используя эту ссылку и соответствующий текст.

0 голосов
/ 16 апреля 2010
/\w*another\w*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...