Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Текст между символами
Форумы портала PHP.SU » PHP » Регулярные выражения » Текст между символами

Страниц (1): [1]
 

1. san4es - 13 Июля, 2016 - 10:05:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = "0A1A2A3A4";
  3.  
  4. preg_match_all("/A(.+?)A/is", $str, $arr, PREG_PATTERN_ORDER);
  5.  
  6. preg_match_all("/A(.+?)(A|\Z)/is", $str, $arr, PREG_PATTERN_ORDER);
  7.  


находит только 1 и 3

не соображу, как достать 1, 2, 3 и 4 ?
2. Мелкий - 13 Июля, 2016 - 11:08:41 - перейти к сообщению
Вам нужны lookahead проверки.
A(.+?)(?=A|\Z)
А по соображениям оптимальности выражения, A([^A]++)(?=A|\Z)
3. san4es - 13 Июля, 2016 - 11:11:40 - перейти к сообщению
Мелкий пишет:
Вам нужны lookahead проверки.
A(.+?)(?=A|\Z)
А по соображениям оптимальности выражения, A([^A]++)(?=A|\Z)


Спасибо!

 

Powered by ExBB FM 1.0 RC1