$pattern = '/\[gallery(\d+)\]/e';
$str= preg_replace($pattern, 'get_images($1)', $str);
Notera att jag använder enkelcitat för strängar. Detta gör escapen mer tydlig. (Man behöver inte hålla på med dubbla \) [ och ] är reservade tecken, så de måste alltså föregås med \ (Sk escape) Hade man använt dubbelcitat för strängarna skulle man fått ha två \ - först ett för tolkningen av det andra \ i strängen, sedan ett som hamnar i uttrycket.
( och ) ringar in resultatet
\d söker efter en siffra.
+ gör att sökningen efter en siffra upprepas så att du kan matcha en elelr flera nuffror.
/ och / omsluter hela uttrycket. e talar om för preg_replace att ersättningsträngen innehåller kod. Notera att koden ligger i en sträng. $1 infogar matchningen.
Skulle du någon gång behöva infoga en sträng istället för ett nummet till ett e-uttryck, så måste du infoga citat-tecken precis som om du skrev in en sträng varsomhelst annars - $1 infogar bara strängen rakt av. Dock escape'as eventuella enkel- och dubbelcitat i matchningen innan den infogas. Jag kan förklara det där närmare någon annan gång om det behövs.

