Используя Regex, чтобы получить значение в теге HTML? - PullRequest
0 голосов
/ 11 октября 2011

Я использую этот код регулярного выражения для получения тегов, но не значение:

(<input type="hidden" name="pt" id="pt" value=")|(" \/>)

Из этого кода:

<input type="hidden" name="pt" id="pt" value="f64b1aadf7baa6e416dbfb6bf95fa031" />

Но как быЯ делаю это наоборот?Получить значение, но не окружающие теги?Таким образом, я получил бы только «f64b1aadf7baa6e416dbfb6bf95fa031» (без кавычек).Спасибо.

Ответы [ 2 ]

3 голосов
/ 11 октября 2011

Как говорит Донат, вы серьезно не должны использовать регулярные выражения в HTML.Тем не менее, так как это довольно простой случай, я буду активатором.А если серьезно, если это на йоту усложняется, переключитесь на парсер DOM.

value="(.+?)"

Я предполагаю, что вы используете PHP, поэтому, чтобы получить захваченную группу, сделайте следующее:

preg_match('value="(.+?)"', $input, $groups);
echo "Value = " . $groups[1];

? делает его ленивым оператором, поэтому он берет первый кавычка.Если есть возможность избежать кавычек внутри кавычек, вам нужно добавить это:

value="(.+?[^\\])"
2 голосов
/ 11 октября 2011

Хотя обычно не рекомендуется пытаться анализировать HTML с помощью регулярных выражений, вы можете попробовать это: value="([^"]*)".

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