Dik, to je o moc lepsi, ale mohl jsi z toho udelat priklad :)
<?php
$patt1 = "/\bt\((['|\"].*['|\"])(,.*)(,.*)\);/";
$patt2 = "/\bt\((['|\"].*['|\"])(,*['|\"].*['|\"])(,.*)\);/";
$patt3 = "/\bt\((['|\"].*['|\"])(,*['|\"].*['|\"])*(,.*)*\);/";
$zmena = "zmena";
$repl = "t($1,'".$zmena."'$3);";
// --- Varianta 1 ---
$str1 = "Tohle je nepodstatná část textu t('tento text může být jakýkoliv'); pokračování v nepodstatné části textu.";
echo '<br>'.preg_replace($patt1,$repl,$str1);
echo '<br>'.preg_replace($patt2,$repl,$str1);
/*
Požadovaný výsledek:
Tohle je nepodstatná část textu t('tento text může být jakýkoliv','zmena'); pokračování v nepodstatné části textu.
Výsledek:
Tohle je nepodstatná část textu t('tento text může být jakýkoliv'); pokračování v nepodstatné části textu.
Tohle je nepodstatná část textu t('tento text může být jakýkoliv','zmena'); pokračování v nepodstatné části textu.
*/
// --- Varianta 2 ---
$str2 = "Tohle je nepodstatná část textu t('tento text může být jakýkoliv',''); pokračování v nepodstatné části textu.";
echo '<br>'.preg_replace($patt1,$repl,$str2);
echo '<br>'.preg_replace($patt3,$repl,$str2);
/*
Požadovaný výsledek:
Tohle je nepodstatná část textu t('tento text může být jakýkoliv','zmena'); pokračování v nepodstatné části textu.
Výsledek:
Tohle je nepodstatná část textu t('tento text může být jakýkoliv',''); pokračování v nepodstatné části textu
Tohle je nepodstatná část textu t('tento text může být jakýkoliv','','zmena'); pokračování v nepodstatné části textu.
*/
// --- Varianta 3 ---
$str3 = "Tohle je nepodstatná část textu t('tento text může být jakýkoliv','','další jakýkoliv text'); pokračování v nepodstatné části textu.";
echo '<br>'.preg_replace($patt1,$repl,$str3);
echo '<br>'.preg_replace($patt3,$repl,$str3);
/*
Požadovaný výsledek:
Tohle je nepodstatná část textu t('tento text může být jakýkoliv','zmena','další jakýkoliv text'); pokračování v nepodstatné části textu.
Výsledek:
Tohle je nepodstatná část textu t('tento text může být jakýkoliv','zmena','další jakýkoliv text'); pokračování v nepodstatné části textu.
Tohle je nepodstatná část textu t('tento text může být jakýkoliv','','další jakýkoliv text','zmena'); pokračování v nepodstatné části textu.
*/
$repl2 = "t($1,'".$zmena."'$2);";
$patt4 = "/\bt\((['\"].*?['\"]),['\"]['\"](,.*)*?\);|\bt\((['\"].*?['\"])(,.*)*?\);/";
echo '<br>';
echo '<br>'.preg_replace($patt4,$repl2,$str1);
echo '<br>'.preg_replace($patt4,$repl2,$str2);
echo '<br>'.preg_replace($patt4,$repl2,$str3);
?>
V podstate bys tu prvni cast nepotreboval, pokud by ti nevadilo, ze druhy priklad konci 'zmena','') .Mno, a co se tyce chyb, nemas tam ty otazniky a nejspis chybne mas pouzity symbol pro nebo |, tak jsem ho smazal ze zavorky.
[abc] = pismeno a nebo b nebo c (pismena)
a|b|c = pismeno a nebo b nebo c (retezce)
aa|b|c - aa nebo b nebo c (retezce)
a[abc]|b[abc]|c[abc] - (aa nebo ab nebo ac) nebo (ba nebo bb nebo bc) nebo (ca nebo cb nebo cc)
[abc][abc] - totez
['|\"] - znak ' nebo znak | nebo znak "