Lookbehind em expressões regulares do PHP
Na lição anterior, cobrimos o lookahead.
De forma análoga, existe o lookbehind positivo
- (?<= ). No exemplo a seguir, a substituição
ocorrerá apenas se houver um 'x' antes de
'aaa':
<?php
preg_replace('#(?<=x)aaa#', '!', 'xaaa'); // retornará 'x!'
?>
E também existe o lookbehind negativo
- (?<! ). No exemplo a seguir, a substituição
ocorrerá apenas se 'x' NÃO estiver antes de
'aaa':
<?php
preg_replace('#(?<!x)aaa#', '!', 'baaa'); // retornará 'b!'
?>
Dada uma string com variáveis:
<?php
$str = '$aaa $bbb $ccc';
?>
Obtenha um array com os nomes das variáveis desta string (sem o cifrão).