Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите с регуляркой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
sberkut
Отправлено: 26 Августа, 2010 - 13:09:53
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Есть название шин випа:
Nokian Hakkapeliitta R 245/40 R18 97R
Nokian Hakkapeliitta 7 215/50 R17 95T

нужно выцепить 245/40 R18 , подскажите как сделать?
спасибо
 
 Top
DedMorozzz
Отправлено: 26 Августа, 2010 - 13:47:58
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




а свои мысли?
И формулировка не верная. Ибо не ясно, только 245 или всё что до и после слэша...

(Отредактировано автором: 26 Августа, 2010 - 13:49:01)

 
 Top
Саныч
Отправлено: 26 Августа, 2010 - 14:11:59
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




я думаю вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. /^.+(\d+\/\d+\sr\d+).+$/i

да и харашо бы по конкретней орписать задачу, и какие варианты строк могут быть

(Отредактировано автором: 26 Августа, 2010 - 14:14:48)



-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DedMorozzz
Отправлено: 26 Августа, 2010 - 14:14:50
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Цитата:
.+(\d+\/\d
не подойдёт. Жадный поиск съест максимум...
 
 Top
Саныч
Отправлено: 26 Августа, 2010 - 14:24:17
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




DedMorozzz пишет:
не подойдёт. Жадный поиск съест максимум...

немного подправил
CODE (htmlphp):
скопировать код в буфер обмена
  1. /^.+?(\d+\/\d+\sr\d+).+?$/i

проверено, работает
Проверял на js
CODE (javascript):
скопировать код в буфер обмена
  1. var str = "Nokian Hakkapeliitta R 245/40 R18 97R";
  2. str = str.match(/^.+?(\d+\/\d+\sr\d+).+?$/i);
  3. str[1]; //то что нам и нужно


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DedMorozzz
Отправлено: 26 Августа, 2010 - 14:30:57
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




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

+ ко всем и с названием темы "ПОМОГИТЕ!!"))) Для поисковика это нереально полезно. Не 1 человек такую тему не найдёт.

(Отредактировано автором: 26 Августа, 2010 - 14:41:14)

 
 Top
Саныч
Отправлено: 26 Августа, 2010 - 14:46:23
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Ну почему же не приложили никаких усилий? Человек ведь нашел форум, зарегистрировался, открыл тему... целое дело Улыбка

А если серьезно, неважно приложил человек усилия или нет. Просто он спросил и тупо возьмет и подставит ответ в свой код, а я же на его вопросе лишний раз для себя попрактиковался... И в следущий раз, когда у него возникнет опять проблема, он снова полезет на форум, а я же смогу решить ее сам и намного быстрей, чем он будет ждать ответа... Тут дело в желании самого человека...


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DedMorozzz
Отправлено: 26 Августа, 2010 - 14:51:42
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




ИМХО, для практики плохо использовать краткие обозначения. Порой сталкиваюсь с регулярками в несколько строк. И когда там такие обозначения, т.е. в неявном виде, это жуть...
Ибо \s и \S весьма похожи. В тексте можно даже не заметить или не обратить внимания или забыть, в каком было регистре, но при этом они означают СОВЕРШЕННО противоположное. + в наших реалиях \w не включает всё что надо. Намного лучше для читабельности указывать в явном виде. Там невозможно ошибиться.
 
 Top
sberkut
Отправлено: 26 Августа, 2010 - 15:18:11
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




спасибо, ваши ответы не пройдут впустую Улыбка я в любом случае попытаюсь понять логику ) спасибо Саныч
 
 Top
Joo
Отправлено: 27 Августа, 2010 - 10:44:56
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: Казахстан


Помог: 1 раз(а)




Делал я софтину для разбора прайса шин и дисков, вот с такими кодировками.
Тут лучше указать более жестко:
PHP:
скопировать код в буфер обмена
  1. '%^.*?(\d{2,3})\/(\d{2})\s+R(\d{2}).*?$%im'

Если каждую строку обрабатываешь по отдельности то можно просто
PHP:
скопировать код в буфер обмена
  1. '%(\d{2,3})\/(\d{2})\s+R(\d{2})%i'

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

Ну так не отвечай, или своим возмущением лишний пост набить хочешь?


-----
"Им будет не просто, тем кто полагается на истину авторитета, вместо ​того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог
 
 Top
Саныч
Отправлено: 27 Августа, 2010 - 12:31:49
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Joo пишет:
'%^.*?(\d{2,3})\/(\d{2})\s+R(\d{2}).*?$%im'

Это впринцепи тоже самое, что и я написал, просто я указал "один и больше символов" только из-за незнания того, какие там цифры могут быть...
Смешно получается, хоть и учусь на автомобильном факультете, а какие цифры могут быть в маркировке шин не знаю Улыбка


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Joo
Отправлено: 27 Августа, 2010 - 14:46:24
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: Казахстан


Помог: 1 раз(а)




Саныч пишет:
Это впринцепи тоже самое, что и я написал, просто я указал "один и больше символов" только из-за незнания того, какие там цифры могут быть...
Смешно получается, хоть и учусь на автомобильном факультете, а какие цифры могут быть в маркировке шин не знаю

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


-----
"Им будет не просто, тем кто полагается на истину авторитета, вместо ​того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB