регулярное выражение для извлечения опций внутри тега select - PullRequest
0 голосов
/ 10 января 2009

Мне нужно извлечь опции в `` конкретный тег выбора. Можно ли выполнить с помощью одного регулярного выражения, или мне придется сначала захватить внутренний HTML-код выбора, а затем параметры? Вот пример HTML:

<select id="select_id">
  <option selected value="">Select Type</option>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
</select>

.....

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 января 2009

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

Есть ли какая-либо конкретная причина для попытки анализа HTML с помощью регулярного выражения вместо его загрузки в DOM или использования DOM, доступного в браузере через Javascript?

Если у вас есть только такой фрагмент, вы можете использовать

value="(\d*)"

Где (\ d *) будет захватывать значения каждого параметра.

Проблема, которую я вижу, заключается в том, что вам придется сузить поле поиска с помощью другого регулярного выражения, чтобы получить такой простой запрос. Что-то вроде

<select.*>(.*?)</select>

во внешнем цикле будет работать в большинстве случаев. Тем не менее, DOM - ваш друг, и он избегает таких хаков.

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

Я бы искал поддержку библиотеки DOM, но если нужно, сделайте что-то похожее на это:

"<select.*?>.*?<option value=\"(\d+)\">" + select_id + "</option>.*?</select>"

Где select_id - выбор опции. Также убедитесь, что у вас включена многострочная поддержка.

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