HELP! Регулярное выражение

12
D
На сайте с 14.01.2007
Offline
153
#11

а второй блок это по вашему что?:))

это и есть результат

R
На сайте с 20.03.2011
Offline
13
#12
Dinozavr:
а второй блок это по вашему что?:))
это и есть результат

Я результат вижу. покажите скрипт который смогу скопировать и протестировать. покажите фразу на которой вы тестировали, функцию... в общем прошу выложить полностью готовый пример с вашим выражением. Так как у меня ваш пример не работает.

D
На сайте с 14.01.2007
Offline
153
#13

извините за нескромный вопрос: а первый блок никак нельзя "скопировать и протестировать"?

R
На сайте с 20.03.2011
Offline
13
#14
Dinozavr:
извините за нескромный вопрос: а первый блок никак нельзя "скопировать и протестировать"?

Ах! Прошу прощения=) я не заметил. Да, вы правы. Все работает=)

Еще раз спасибо за вариант решения.

R
На сайте с 20.03.2011
Offline
13
#15

парни, расскажите как дописать это выражение

preg_match("/(\d+)[^0-9]+(\d+)?/", $_POST['motion1'], $out);

чтобы оно выдавало ошибку если циферок больше двух.

т.е. чтобы работали фразы

от 5-ти до 18-ти товаров
от 5-ти до 18
от 5-ти выше
5-ти выше
5-18

но на фразу

от 5-ти до 18-ти товаров 45

выдало ошибку.

Даже мыслей нету как это сделать...я в печали=(

siv1987
На сайте с 02.04.2009
Offline
427
#16

preg_match("/(\d+)[^0-9]+(\d+)?\D*(\d*)/", $_POST['motion1'], $out);

if( $out[3] ) die('Error');

R
На сайте с 20.03.2011
Offline
13
#17
siv1987:
preg_match("/(\d+)[^0-9]+(\d+)?\D*(\d*)/", $_POST['motion1'], $out);
if( $out[3] ) die('Error');

Куда можно написать огромное СПАСИБО?🍻

Оно не работает если в строке такое просто цифра. Нужно после цифры ввести пробел чтобы выражение сработало=(

так же пример

"при покупке от 5" (без пробела после первой цифры в строке)

тоже не работает(

siv1987
На сайте с 02.04.2009
Offline
427
#18

Что-то сильно запутанной получается это регулярка. Попробуйте тогда вот так

preg_match_all( '/\d+/', $_POST['motion1'], $out );

if( count($out[0]) > 3 ) die('Error:');

'от 5-ти до 18-ти товаров'


Array
(
[0] => Array
(
[0] => 5
[1] => 18
)

)
D
На сайте с 14.01.2007
Offline
153
#19

вот это сработает только на одно или два числа, дальше сами

preg_match("/^[^0-9]*(\d+)[^0-9]+(\d+)?[^0-9]*$/", $_POST['motion1'], $out);

R
На сайте с 20.03.2011
Offline
13
#20
siv1987:
Что-то сильно запутанной получается это регулярка. Попробуйте тогда вот так

preg_match_all( '/\d+/', $_POST['motion1'], $out );
if( count($out[0]) > 3 ) die('Error:');

'от 5-ти до 18-ти товаров'

Array
(
[0] => Array
(
[0] => 5
[1] => 18
)

)

Великолепно! Как всегда на высоте!

thanks!

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий