$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 で次のように言います: (2 つの引用符があり、その間に引用符がない) または (文字 "a") 代わりに、/e 修飾子が使用されるため、strlen などの php コードが機能します。しかし、なぜ「または」の論理なのか理解できません。
- パターンの 2 番目の部分 (a 文字) の長さが 0 より大きい場合は、それを「i」に置き換えるか、別のことを行います (\0 の意味がわかりません)
どんな助けにも感謝します。この正規表現は私をイライラさせます:(