| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Регулярные выражения > поиск слова в тексте |
| Автор: trinitr0 13.11.2015, 11:06 | ||||
| Здравствуйте! Есть задача найти определённое место в текстовом файле, начинающийся со строки, например "Value", и проверить значение стоящие после двоеточия и вывести строку в случае соответствия значению "A1". Если пробую так:
То выводится весь остаток текста после искомой строки, начиная с икомой. Если так:
вообще ничего... |
| Автор: igorold 13.11.2015, 12:25 |
| \[A-Z0-9] зачем слэш перед квадратной скобкой? этим вы сломали шаблон Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/poisk-slova-v-tekste-id56459a9fae2015cd6d8b4567#findElement_E7045_5645aca5ae2015830e8b483e_0 |
| Автор: trinitr0 13.11.2015, 14:09 | ||
Поправил:
Но проблема с остатком текста после искомой строки осталась |
| Автор: igorold 13.11.2015, 20:13 |
| Неплохо бы больше програмного кода увидеть ... И что такое А1? может $A1 или 'A1' ? Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/poisk-slova-v-tekste-id56459a9fae2015cd6d8b4567#findElement_E7045_56461a32ae2015c77c8b4ee3_0 |
| Автор: noize 14.11.2015, 01:27 | ||||
|
| Автор: tzirechnoy 14.11.2015, 16:36 | ||
Что логично -- поскольку если match failed, то переменная $1 не меняется, поскольку первое подвыражэние ничему не соответствует. |
| Автор: trinitr0 16.11.2015, 13:00 | ||||
Не совсем понял что Вы хотели сказать. Добавлено через 6 минут и 18 секунд Подскажите пожалуйста как поправить выражение, что бы оно давало только одну строку из текста при совпадении с шаблоном? |
| Автор: tzirechnoy 16.11.2015, 14:59 |
| Никак -- приведённое регулярное выражэние итак выдаёт только одну строку текста при совпадении с шаблогом. |
| Автор: trinitr0 16.11.2015, 15:12 | ||||
В случае:
да действительно, одна строка. Но мне надо для такого случая: (извеняюсь, надо было сразу весь тескт приводить, но неопытности решил что будет достаточно пары строк)
|
| Автор: tzirechnoy 16.11.2015, 16:14 |
| PS То есть проблема у Вас совсем не в регулярном выражэнии. |
| Автор: trinitr0 16.11.2015, 16:39 |
| Честно говоря не могу сказать наверняка. Мне необходимо выделить только одну строку у которой могут меняться только два последних символа и сравнить её. А у меня получается после искомой строчки вываливается весь остаток строк из файла, вместо одной искомой. А вот в регулярках ли дело или нет не знаю... |
| Автор: tzirechnoy 16.11.2015, 20:57 | ||
Зато я говорю вполне наверняка. |
| Автор: trinitr0 18.11.2015, 14:08 | ||
Вообщем решением было:
|