[Помогите] Выбрать значения из тега input

Тема в разделе "Регулярные выражения", создана пользователем .WishMaster., 18 ноя 2009.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. .WishMaster.

    .WishMaster. Создатель

    Регистр.:
    15 июл 2009
    Сообщения:
    27
    Симпатии:
    0
    Помогите составить регулярное выражение
    Есть форма в ней имеются поля input
    <input type="text" name="значение" value="" class=input-st>
    Нечто в этом роде.
    Нужно получить значение name="значение". Проблема в том что name="" может быть в любом месте тега input, и содержание тега тоже не постоянно.
    Попробывал вот так
    /<input[^>]+name="(\S+)">/
    но не выходит
    Буду благодарен за помощь.
    Добавлено через 42 минуты
    Вопрос решил...Нужно сделать
    /<input[^>]+name="(\S+)"[^>]+>/
    но другая проблема...
    Если идет в теге name="", то не обрабатывается...

    Вот еще проблема не обрабатывается выражение если name="блаблв">
    т.е. стоит в самом конце, но name="блабла" > обрабатывается
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    Код:
    /<input[^>]+name="(\S*)"[^>]*>/
     
    .WishMaster. нравится это.
  3. .WishMaster.

    .WishMaster. Создатель

    Регистр.:
    15 июл 2009
    Сообщения:
    27
    Симпатии:
    0
    Спасбо, но я тоже сам дошел до решения
    Код:
    /<input[^>]+name\s*=\s*""(\S*)""[^>]*>/
    в данном виде полностью удовлетворяет мои потребности
    Всем спасибо можно закрывать
     
  4. Ponochka

    Ponochka Постоялец

    Регистр.:
    21 фев 2008
    Сообщения:
    128
    Симпатии:
    13
    1. смотреть, что внутри тега - /<input(.*?)>/
    2. искать отдельно значение в нем каждого аттрибута

    - /name\=\"(\S+)\"/
    - /type\=\"(\S+)\"/
    - /value\=\"(\S+)\"/
     
Статус темы:
Закрыта.