我尝试解析MySQL转储以自动创建迁移。
删除数据库解析为:
preg_match_all('/DROP TABLE.+`.+`(.+|.?);/', $this->contents, $this->dropTableBlock);
但是create table query返回false和empty array:
preg_match_all('/CREATE TABLE.+`.+`.+\(.+\).+(ENGINE=.+)?.+(DEFAULT CHARSET=[.]{1,5});/is', $this->contents, $this->createTableBlock);
在regex101.com上,匹配需要字符串: https://regex101.com/r/eD8wI5/1
请告诉我,为什么preg_match_all什么都找不到?
答案 0 :(得分:0)
删除点周围的[]
会修复它。
preg_match_all('/CREATE TABLE.+`.+`.+\(.+\).+(ENGINE=.+)?.+(DEFAULT CHARSET=.{1,5});/is', $content, $matches);
答案 1 :(得分:0)
dbname.tablename
注释
return sum(((x ** i) / (factorial(i))) for i in range(0, u+1))
语法