регулярные или както еще?

Аватара пользователя
vadimiron

Re: регулярные или както еще?

Сообщение vadimiron »

+ означает, что предыдущий сомвол повторяется один или большее число раз

{min,max} - задаёт диапозон повторения, то есть от min до max, может также только одно значение быть, например {min,} или {,max}, то есть в данном конкретном случае {1,} обозначает тоже самое, что и +
Аватара пользователя
E-mail

Re: регулярные или както еще?

Сообщение E-mail »

Цитата:



и вообще что ето такой за знак вопроса?



А еще знак вопроса означает поиск минимально возможного числа символов.



preg_match('/(.*?)/',$text, $mass);

Вот такое выражение значит:

- найти минимальное количество элементов стоящих от до
Аватара пользователя
E-mail

Re: регулярные или както еще?

Сообщение E-mail »

mrcnn

и как это понять минемально?

минемальней чем что? и без чего?
Аватара пользователя
E-mail

Re: регулярные или както еще?

Сообщение E-mail »

Цитата:



mrcnn

и как это понять минемально?

минемальней чем что? и без чего?



.* значит - любое количество элементов

По умолчанию происходит поиск максимально возможного числа элементов включаемых в .*



Например, если в переменной записано следующее:

$text="gkljghjklh button value=23432 size=fgkjheop color=kjjkh disabled>";

И нам нужно найти текст от

Код: Выделить всё

$text="<button disabled>g</button>kl<button disabled></button>jghjklh <button value=23432 size=fgkjheop color=kjjkh disabled></button>";

preg_match('/<button.*<\/button>/',$text, $mass);

print $mass[0];


Второй

Код: Выделить всё

$text="<button disabled>g</button>kl<button disabled></button>jghjklh <button value=23432 size=fgkjheop color=kjjkh disabled></button>";

preg_match('/<button.*?<\/button>/',$text, $mass);

print $mass[0];


Разница между скриптами только в знаке вопроса.



Чтобы сделать это:

Код: Выделить всё

$text="<button disabled>g</button>kl<button disabled></button>jghjklh <button value=23432 size=fgkjheop color=kjjkh disabled></button>";

preg_match_all('/<button.*?disabled>(.*?)<\/button>/',$text, $mass);

foreach($mass as $i)

    foreach ($i as $j)

        echo $j."\n";
Ответить

Вернуться в «Вебмастеру»