![]() |
0 Всего найдено: 20
Donate_employer
Сообщение
04/05/2010 09:57
Копия темы
Регулярное выражение. Нужна помощь. Есть, например, вот такая строка: Shed moose antler; 19,7"(50cm)length, 5,3"(39cm)wide; weight 3.3Ibs(1.5kg). Нужно вытянуть число (килограммы), которое находится между «(» и «kg)» Делаю вот так: preg_match('|\((.*)kg\)|Ui', $str, $out); но выводит не то, что нужно — все, что находится после первой открывающейся скобки. Подскажите, пожалуйста, какое выражение более корректное для этого случая.
devilmaycry
Сообщение
04/05/2010 10:08
Копия темы
preg_match("|Ibs\((.*)kg|Uis", $x, $s); попробуй так
Donate_employer
Сообщение
04/05/2010 10:17
Копия темы
Да пофик, у меня не страница, а строка из БД. = ) Твой способ поуниверсальнее конечно.
devilmaycry
Сообщение
04/05/2010 10:20
Копия темы
в данном примере будет работать так как надо, понт не засчитан :)
Stierus
Сообщение
04/05/2010 10:46
Копия темы
почему точно не сработает ? жадность меняем .*? вроде, дельный совет дали :)
Donate_employer
Сообщение
04/05/2010 11:15
Копия темы
Таким образом тоже будет резать с первой скобки.
RiDDi
Сообщение
04/05/2010 11:24
Копия темы
0
:P бе-бе-бе )) Просто я вообще не сторонник .* везде сувать ))). Регулярное выражение по своей природе должно обеспечивать стабильность и должный уровень валидности данных. Другими словами отталкиваться надо от тех данных, которые необходимы, а не от их окружения. Программа работающая исходя из нужных данных будет либо продолжать корректно работать при изменении окружения, либо перестанет работать вообще. Программа аля твоему примеру будет продолжать работать, но НЕКОРРЕКТНО собирая ошибочные данные и направляя их дальше, тем самым усугубляя ситуацию например парсер начнет собирать кривую инфу и отправлять её пользователю. Вот потому и понты ))) |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |