2013-11-07 5 views
0

У меня проблема понимание знака «+».Пояснение запрошено для определенного regxp

Вот мой пример:

$array = array("123 Main St."); 

$match = preg_grep("%^\d{1,5}\s[A-Za-z.]+\s[A-Za-z.]{2,7}$%",$array); 

foreach($match as $value) { 
    echo "<pre>" .$value . "<br>"; 
} 

Так в основном это полностью работает, но я не понимаю работу в знак «+» в. Если я удалю его, это не сработает.

+1

всего один или несколько символов, как и предыдущий. – Manolo

ответ

2

+ равно {1,} означает 1 или более

+0

, так что вы говорите, что [a-z] + и [a-z] {1,} - то же самое? – Daniel

+1

Да. '{1,}' настолько распространены, что они сделали для него особый символ. Как '*', что означает '{0,}' _0 или больше_ – Halcyon

+0

Хорошо, я понимаю. Спасибо :) – Daniel

1

+ означает, по меньшей мере, один или более вхождений выражения.

В вашем случае [A-Za-z.]+ означает, что должен быть хотя бы один алфавит или точка.

3

+ в регулярном выражении должен соответствовать 1 или более предшествующим образцу группы ИЛИ.

В вашем примере: [A-Za-z.]+ будет соответствовать 1 или более английским алфавитам (без учета регистра) ИЛИ буквальной точке.

Read more about regular expressions

+0

Спасибо, я обязательно посмотрю на эту ссылку. :) – Daniel

+0

Да и предлагаю закрепить эту ссылку. Очень хорошая ссылка на регулярное выражение. – anubhava

+0

Да, я это сделаю. Мой первый час с regxp сегодня, и я могу сделать regxp по электронной почте. Надеюсь, я узнаю большую часть этого очень быстро, по крайней мере, я нахожу это чрезвычайно забавным;) – Daniel

Смежные вопросы