$value = "abrak'adabra' baba";
$pattern = array();
$replacement = array();
$pattern[] = '/(\'[^\']+\')|(a)/e';
$replacement = "strlen('\\2') ? 'i' : '\\0'";
上面的代码将abrak'adabra' baba更改为ibrik'adabra' bibi
我想做的是将abrak'adabra' baba更改为abrak'idibri' baba。怎么做?
老实说,我什至不太了解上面的正则表达式模式。有一些我知道但我不知道的代码:
- 在 $pattern 中说:(任何包含两个引号且中间没有引号的单词)或(字符“a”)。在替换中,像 strlen 这样的 php 代码将起作用,因为将使用 /e 修饰符。但我不明白为什么那里是“或”逻辑。
- 如果模式中第二部分的长度(a 字符)大于零,则将其替换为“i”,否则执行其他操作(我不明白 \0 的含义)
我会很感激任何帮助。这个正则表达式的东西让我很沮丧:(