![]() |
|
Модераторы: ginnie |
![]()
|
|
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Доброго всем.
Есть строка ^-59869856jkjgspofijgjspogjr начинается с ^- как Вы заметили. Требуется вырезать цифры. Цифры вырезаю, но получается такой вариант: ^-59869856 Как только не пробовал, первые два метасимвола никак не хотят выделяться .+ - не работает \W - не работает уже как только не пробовал, может кто-то встречался с такой проблемой, спасибо. |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
Покажите как вырезаете то.
|
|||
|
||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Там на самом деле несколько строк, нужен вариант регекспа что-бы подошел ко всем, это типа тестового задания, мне оно не надо но дело принципа:
Вот второй вариант никак не решается, мозг сломал. Это сообщение отредактировал(а) Marlik - 22.5.2010, 15:37 |
|||
|
||||
| rumax |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Решается довольно просто:
З.Ы. $txt - значение $str, $str2 или $str3 Это сообщение отредактировал(а) rumax - 31.5.2010, 16:07 |
||||||
|
|||||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Спасибо конечно, но у Вас также не работает патерн со строкой в этой переменной $str2...
|
|||
|
||||
| rumax |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Действительно, странно. А вот если строку взять в одинарных кавычках, то работает. ну или так переменные объявить
Это сообщение отредактировал(а) rumax - 14.6.2010, 12:01 |
||||
|
|||||
| dva300 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: 2 Всего: 1 |
ели я правильно понял то нужно вытащить дату и время ? тогда так
--------------------
Участник движения Культура Вождения |
||||
|
|||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Да, поняли почти правильно, дату, время, и все что после Comment:. но все равно если
то результат тот-же, никакой. Нужно найти регэксп который подойдет для всех трех вариантов. Но все равно спасибо, за участие. |
|||
|
||||
| dva300 |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: 2 Всего: 1 |
хм... проверил еще раз... у меня работает без проблем. добавил чтобы еще и после Comment выбирал выполняет нормально и для переменных и если из файла читать. рассказывайте тогда полностью процедуру как делаете. может у вас строки все же другие ?
вывод следующий
--------------------
Участник движения Культура Вождения |
||||||||
|
|||||||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
У Вас ошибка со второй переменной $str2, Вы знак доллара - $ заменили амперсандом - &
Мой вариант: my $str2 = "^-06/02/2002*$21:55:45"; Ваш вариант: my $str2 = "^-06/02/2002*&21:55:45"; Поэтому и не работает у меня, спасибо. |
|||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: 2 Всего: 1 |
хм... действительно аномалия какая-то но суть от этого не меняется при инициализации переменных используйте '' (апострофы) а не "" (кавычки) с файлом работает и так. --------------------
Участник движения Культура Вождения |
|||
|
||||
| rumax |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
С апострофами и мой код работает. А если кавычки использовать, то будет ругаться на переменные необъявленные |
||||
|
|||||
| dva300 |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: 2 Всего: 1 |
я что-то не пойму. не хотите апострофы использовать тогда экранируйте символ $ через \$ в ручную. или это задача на выносливость мозга ? --------------------
Участник движения Культура Вождения |
||||||
|
|||||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Нельзя менять, кавычки на апострофы, и не нужно читать из файла. Есть эти три строки, и надо придумать один регэксп для всех трех. Я так понимаю что в строках, использованы метасимволы, их надо как-то обойти.
Меня интересует такая инструкция: \Q - Вплоть до команды \E все последующие метасимволы становятся обычными символами... А вот как это применить не пробовал, и не знаю... |
|||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: 2 Всего: 1 |
я когда был маленький то работал у одного из провайдеров админом. так там наш главный админ при приеме на работу новеньких давал им задачу следующего характера - "дается заведомо не рабочий модем с каким-либо дефектом и ставилась задача завести его в модемный пул." сколько мы тогда гипотез наслушались..... --------------------
Участник движения Культура Вождения |
|||
|
||||
| Marlik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 25.2.2007 Где: Рязань Репутация: нет Всего: нет |
Это всего лишь строка, думаю вариант с апострофами самый оптимальный, что-бы мозг не вынести...
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |