Задача, найти все буквы «a», перед и после которых не идёт буква «b».
Мой код:
$str = 'a ab a ba a aab a';
$res = preg_replace_callback(
'/.?a.?/m',
function($matches) {
if ( preg_match( '/ab/', $matches[0] ) ) return $matches[0];
if ( preg_match( '/ba/', $matches[0] ) ) return $matches[0];
return str_replace( 'a', '[совпадение]', $matches[0] );
},
$str
);
print $res;
Прекрасно работает, но почему-то не находит первую букву «a» в слове «aab». А ведь должен, так как перед и после неё не идёт буква «b».
Почему?