【发布时间】:2016-08-19 20:55:13
【问题描述】:
我需要创建 laravel 迁移,因此我使用 Sublime Text 中的正则表达式“在文件中替换”将我的 SQL 脚本转换为 laravel 迁移格式。
我的问题是我必须在大约 70 个表中用“tablename”替换以下字符串中的“@”字符:
Schema::table('tablename', function($table) {
$table->dropForeign('@_columnname_foreign');
});
其实我可以用下面的表达式来做到这一点:
(Schema::table\('([a-z]+)',[\s]*function\(\$table\)[\s]*{[\s]*\$table->dropForeign\(')@(_[a-z_]+'\);)
在替换字段中:
$1$2$3
但是当table有多个fk时我不知道怎么办:
Schema::table('tablename1', function($table) {
$table->dropForeign('@_field1_foreign');
$table->dropForeign('@_field2_foreign');
$table->dropForeign('@_field3_foreign');
$table->dropForeign('@_field4_foreign');
$table->dropForeign('@_field5_foreign');
$table->dropForeign('@_field6_foreign');
});
我一直在使用这个网站来验证我的正则表达式RegExr
【问题讨论】:
-
@revo,我只是确定:SublimeTex2 和 SublimeText3 正则表达式实现之间存在差异。删除我的 cmets。
-
这很奇怪。清除地雷。 @WiktorStribiżew
标签: regex sublimetext3