定期替换表达式

时间:2013-11-06 15:20:18

标签: regex

主题文字:

$types[CNT_ANONS] = t('Announcement', 'content_type');

我需要一些查找和替换表达式才能获得结果:

$types[CNT_ANONS] = Yii::t('content_type', 'Announcement');

所以,“t”替换为“Yii :: t”,而函数的参数则反之亦然。

注意:表达式应该是“perl”语法(我在sublime文本编辑器中使用它)。并且可能会在主题文本中出现“Yii :: t”。

2 个答案:

答案 0 :(得分:-1)

你可以尝试

Search : t\('([^']+)',\s'([^']+)'\);
Replace: Yii::t('\2', '\1');

答案 1 :(得分:-1)

尝试:

 $data = '$types[CNT_ANONS] = t(\'Announcement\', \'content_type\');';
 $res = preg_replace('@\$([^\s]+?)(\s+?)=(\s+?)t\((\'|")(.+?)(\'|"),(\s*?)(\'|")(.+?)(\'|")(.*?)\);@sim', "\$$1$2=$3Yii::t($8$9$10, $4$5$6$11);", $data);
 //                    ^_______________^----finding var
 //                                               ^________________^----first argument    
 //                                                                       ^________________^----second argument