Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
23 / 23 / 3
Регистрация: 24.02.2010
Сообщений: 105

Регулярные выражения: пропуск символов, не являющихся заданным словом

03.07.2012, 11:28. Показов 7654. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня! Посоветуйте, пожалуйста, как можно оптимизировать регулярное выражение. Вот фрагмент странички для распарсивания:
HTML5
1
<input id="QtyUnit" name="ctl00$ContentMain$txtQtyUnit" type="text" value="20" readonly="readonly" id="ctl00_ContentMain_txtQtyUnit" style="background-color:Transparent;border-style:None;width:300px;" />
Нужно получить значение value. Я использую такой Regex:
XML
1
<input id="QtyUnit" name="[^"]*" type="[^"]*" value="([^"]*)"[^>]+/>
Всё работает, но возник вопрос: можно ли переделать запрос так, чтобы не указывать name и type? То есть что-то типа такого (решение не рабочее):
XML
1
<input id="QtyUnit" [^(value).]+ value="([^"]*)"[^>]+/>
PS Про HtmlAgilityPack я знаю, но в данный момент нужно решить задачу, используя именно регулярные выражения. Да и самому интересно для общего развития, как это возможно сделать.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.07.2012, 11:28
Ответы с готовыми решениями:

Регулярные выражения: удаление всех символов, не являющихся цифрами, а также первого символа "+" в строке
Написать регулярное выражение, в котором производится удаление всех символов, не являющихся цифрами, а также первого символа &quot;+&quot;...

Дана строка символов. Группа символов между пробелами считается словом. Определить количество слов, являющихся палиндромом.
Дана строка состоящая из слов разделенных пробелом определить номера слов. Название темы изменено, исходя из обсуждения ниже. Прежнее...

Регулярные выражения: вставка символов в середину найденного выражения
Есть строки типа этого: &quot;В году 1783 марта месяца произошло событие, которые на долго запомнилось&quot;78. регулярное выражение...

3
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
03.07.2012, 11:31
Чем вас не устраивает просто пропускать все символы, регулярка сама остановится когда встретит value.
Code
1
<input id="QtyUnit" .*+ value="([^"]*)"[^>]+/>
А вообще перечитайте статья на википедии, там и примеры есть, и почти все рассмотрено довольно кратко.

PS. *+ - это не ошибка, это ленивый вариант квантификатора *
1
23 / 23 / 3
Регистрация: 24.02.2010
Сообщений: 105
03.07.2012, 12:05  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
Чем вас не устраивает просто пропускать все символы, регулярка сама остановится когда встретит value.
Code
1
<input id="QtyUnit" .*+ value="([^"]*)"[^>]+/>
А вообще перечитайте статья на википедии, там и примеры есть, и почти все рассмотрено довольно кратко.

PS. *+ - это не ошибка, это ленивый вариант квантификатора *
Всем устраивает. Только *+ - это ревнивый вариант квантификатора, который почему-то не работает, выдаёт Argument Exception. А вот с *? всё в порядке.
1
03.07.2012, 13:05

Не по теме:

Ха, точно, оплошал я

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.07.2012, 13:05
Помогаю со студенческими работами здесь

Регулярные выражения и обработка символов
Народ, возникла необходимость составить SQL запрос для подсчета количества разделителей в строке и во всей таблице. В качестве разделителя...

Регулярные выражения экранирование символов
Regex.Match(lineAll, &quot;\&quot;&quot;); // Вот так экранирует Regex.Match(lineAll, @&quot;\&quot;&quot;); // Вот так нет Regex.Match(lineAll, @&quot;\(&quot;);...

Если слово из текстового файла совпадает с заданным словом перед этим словом пропускается две строки
Надо написать программу в Паскаль Задача: программа читает текстовый файл и если слово из текстового файла совпадает со словом например...

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на чпу ссылки. Так вот при замене я...

Регулярные выражения - парсинг группы символов
пишу транслятор. необходимо распарсить выражения вида &lt;=, &lt;, =, &gt;, =&gt;. использую boost::tokenizer, не знаю как бы можно было сказать чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru