2012-03-02 6 views
0

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

([^+]+) 

и выводит

< img src=""http://www."" border=""0""/> 

двойные кавычки. Что не так с моим запросом?

+3

[No no no no no no no no no no no no THE PONIES] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) –

+0

помогите мне robert –

+2

Alas @MonsterrodVanhugenstein, в то время как кто-то, кто необычайно разбирается в регулярных выражениях, действительно может управлять такими экстрактами, не моргнув ресниц, в конце концов эти вещи [неизмеримо сложнее, чем о них мечтают в вашей философии] (http: //stackoverflow.com/questions/4231382/regular-expression-pattern-not-matching-anywhere-in-string/4234491#4234491). – tchrist

ответ

0

Ваша проблема имеет смысл только при изменении вашего регулярного выражения.

, но прежде всего, остерегайтесь:

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

, указав это, попробуйте заменить ([^+]+) на (([^<!--]+([^<]|<[^!]|<![^-]|<!-[^-]))+). обратите внимание, что это регулярное выражение предполагает следующее:

  • нет HTML комментарии внутри части сообщения
  • нет никаких строк, содержащих HTML комментарий проемы внутри части сообщения
  • на часть сообщения является действительным фрагмент HTML
    (в противном случае он соответствовал бы, например. <!-<!--/message -->)

вы были предупреждены.

btw, удвоение dquote должно быть стандартным механизмом эвакуации среды imacro.

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