Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> знак вопроса после квантификатора
dadli  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



ХОЧУ СТАТь "ЭКСПЕРТОМ", НО ПОКА НЕ БЛИЖЕ
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 828
Пользователь №: 26787
На форуме: 14 лет, 9 дней
Карма: 50

Не курю:
14 лет, 5 месяцев, 10 дней


здраствуите
что азначает знак вопроса после квантификатора? тоест такои квантификатор {4,7}? что азначает ?



Спустя 5 минут, 12 секунд (8.12.2011 - 14:35) m4a1fox написал(а):
dadli
"Ленивый" поиск

Спустя 1 минута, 14 секунд (8.12.2011 - 14:37) Winston написал(а):
Это ленивая квантификация

Это #(.*?)# - соответствует этому #(.*)#U
Это #(.+?)# - соответствует этому #(.+)#U
Это #[\w]{4,7}# - соответствует этому #[\w]{4,7}#U

То есть захватывать как можно меньше совпадений.



Спустя 2 минуты, 7 секунд Winston написал(а):
В некоторых языках отсутствует модификатор U, потому на замену ему к квантификаторам + и * добавляется ?

Спустя 9 минут, 54 секунды (8.12.2011 - 14:46) dadli написал(а):
ок, я искал и нашёл такои абяасненя:
{n,m}? - больше или равно n и меньше m раз
значит {4,7}? больше или равно 4 и меньше 7 раз
если так, почему етот код виведит "совпадение есть" ? строка содержит символ d ровно 7.

$str = "ddddddd";

if (preg_match("#^[d]{4,7}?$#",$str)) {
echo "совпадение есть";
}

Спустя 2 минуты, 6 секунд (8.12.2011 - 14:49) m4a1fox написал(а):
Ну так вроде он и должен так видеть!!!!

Спустя 21 минута, 32 секунды (8.12.2011 - 15:10) dadli написал(а):
m4a1fox
почему?
{4,7}? ето азначат - больше или равно 4 и меньше 7 раз
а строка содержит символ d не меньше чем 7, а ровно 7 раз

Спустя 12 минут, 37 секунд (8.12.2011 - 15:23) Winston написал(а):
dadli
{n,m}? - некая последовательность повторяется не меньше n и не больше m раз, но как можно меньшее число раз.
Пример:
Код
$str = '465 123465 1324 1324567';
preg_match_all("#\d{4,7}#", $str, $match);
echo '<pre>'.print_r($match, 1).'</pre>';

Такая запись #\d{4,7}# нам вернет
[0] => 123465
[1] => 1324
[2] => 1324567

А такая запись #\d{4,7}?# нам вернет
 [0] => 1234

То есть будет найдено наименьшее количество символов из разрешенного интервала {n,m}.


--------------------


когда чарли чаплин принимал участие в конкурсе: "клон чарли чаплинов", то чарли занимал третю позицию.

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса