Блог

Фрілансера

RSS
rss
Закладки

Гру

16

дужки, які тільки групують

категорія: php

Поговоримо про регулярні вирази (регулярку).
Візьмемо приклад:


$number = '+380670000000';
$aReturn = array();
$exp = "/^\+?3?((8039|8050|8063|8066|8067|8068|8093|8095|8096|8097|8098|8099)\d{7})$/";

preg_match($exp, $number, $aReturn);

print_r($aReturn);

Тут ми перевіряємо на валідність мобільний номер.
В результаті получимо:

Array
(
[0] => +380670000000
[1] => 80670000000
[2] => 8067
)

А навіщо нам $aReturn[2]???

Отже задача:
Потрібно в регулярці згрупувати елементи, але не потрібно їх запам’ятовувати для видачі.

Вихід із ситуації:


$number = '+380670000000';
$aReturn = array();
$exp = "/^\+?3?((?:8039|8050|8063|8066|8067|8068|8093|8095|8096|8097|8098|8099)\d{7})$/";

preg_match($exp, $number, $aReturn);

print_r($aReturn);

В результаті получимо:

Array
(
[0] => +380670000000
[1] => 80670000000
)

А відрізняється лише ?:
Тобто потрібно поставити ?: одразу після відкритих дужок, щоб вони не запам’ятовувались.

Share

no spam <noindex> <nofolow>

Блог фрілансера
Sergunik
2009-2010