Php 如何编写正则表达式来删除Drupal';什么是缓存表?
我想编写一个正则表达式,从数据库转储文件中删除Drupal缓存表的所有SQL insert语句,如Php 如何编写正则表达式来删除Drupal';什么是缓存表?,php,sql,regex,drupal,Php,Sql,Regex,Drupal,我想编写一个正则表达式,从数据库转储文件中删除Drupal缓存表的所有SQL insert语句,如cache、cache\u bootstrap、cache\u bootstrap等。我基本上是想写一个正则表达式,找到一个以“INSERT INTO`cache”开头,以分号结尾的文本。但是,我无法为同样的问题找到合适的正则表达式。有什么想法吗 以下是我的代码: <?php $sql=file_get_contents("C:\Users\akulkarni\Desktop\drupal7
cache
、cache\u bootstrap
、cache\u bootstrap
等。我基本上是想写一个正则表达式,找到一个以“INSERT INTO`cache”开头,以分号结尾的文本。但是,我无法为同样的问题找到合适的正则表达式。有什么想法吗
以下是我的代码:
<?php
$sql=file_get_contents("C:\Users\akulkarni\Desktop\drupal7.sql");
$matches = array();
preg_match_all('/INSERT INTO `cache([^.]+)`.*?/s', "$sql",$matches , PREG_PATTERN_ORDER);
var_dump($matches);
?>
以下是示例文本(已修剪):
'插入到缓存中(cid
,数据
,过期
,已创建
,序列化
)值
“CToools”是一个网站。该网站是“CToools:内容”是类型,0x6133A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A373A73A73A73A73A73A73A73A73A73A73A73A73A73A73A73A3A3A3A3A73A3A3A3A3A3A3A3A3A3A3A3A3A3A373A3A3A3A3A3A3A3A3A3A3A3A3A373A3A3A3A3A3733 3 3 A3A3A3A3A373A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3733 3 3 3 3 3 A3A3A3A3A3A3A3A3A3A3A3A3A373737 7 3 3 3 3 3 3 3 3 3 3 3 3 A3A3A373736 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 76162756C6172795F7465726D732E696E63223B733A383A3A22266696C656E616D65223B733A3203A22766F6')
'插入到缓存\u引导
(cid
,数据
,过期
,创建
,序列化
)值
(“引导程序”模块,0x613A3323A7B733A353A3A22264626C6F67223B4F3A383A22737464436C617373223A323A7B733A3226E616D6523B733A32264626C6F67223B733A32266696C656E616D6523B733A332363A226D6F64756C65732F64626C6F64646C6672E676D677552237D733A3373737373736B7676767676C67323A37323B7323A37323A37373A362B7363A37363A37373A362B7676767676B7323B7323A37363A373737373A37373A373A373A373767676B737373A373A37376767676B73A373A373A373A373A37373A373A373739223B733A3A3A22266696C656E616D65223B733A333303A226D6F64756C65732F6F7665726C61’)
'插入cache_字段
(cid
,数据
,过期
,创建
,序列化
)值
('field:node:1',0x613A3503A7B733A332313A226669656C645F636F72655F726967696E61746F72223B613A3A3733A3333A22756E6423B613A313A7B733A3303B613A3333A7B733A353A3227616C7565223B733A32243616C69666F726E61961204469696969696969696F6E206F662046C2C2476120616E644747656B6262767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676765F76616C7565223B733A353363A2243616C69666F726E6961204469766973696F6E206F66204F696’)
'插入缓存\u表单
(cid
,数据
,过期
,创建
,序列化
)值
(“表格”0x613A332333A7B733A31313A22361747472696275746573223B613A3A3A3A3A3A3A3A3A3A3A3A3A3C6173223B613A3A3A3A3A3A3A3C6173223B613A3A3A3A3A3A3A3303B733A323A2266617472757265732D7D7D733A3A3A3A323A3A3A3A343A343A3A3A37373737363A3A37373737373737373732A27373737373737378706F7272727D7D7D733A3A3A3A3A3A3A3A3A3737373737373636363636363637373737373737373736363636363636363636363636373737373737373737373737373737373737373737373737373737373737373737373737373737373A222374726565223B623A303B733A343A2226E616D65223B613A3A3A7B733A3A3A2237469746C652’)
'插入到缓存\u引导
(cid
,数据
,过期
,创建
,序列化
)值
('links:features:all:0:en:0',0x613A3323A7B733A3A2226D696E5F6465707468223B693A313B733A3226D61785F6465707468223B4E3B7D,0,1316550799,1),
('links:features:tree data:en:EC99D3452ef1de622E66C68BA908B1DAD455AA71F5E686448AEEC6488B89C88',0x613A3323A7B733A323A2274726565223B613A303A7B7D733A3130A226E6F64655F6E6E6B73223B613A303A7B7D7D7D,0,1316550799,1),
('links:main menu:all:0:en:0',0x613A3323A7B733A393A2226D696E5F6465707468223') 您可以使用参数从数据库转储中排除表。
此正则表达式将帮助您定位INSERT语句
INSERT\s+INTO\s+(cache|cache_bootstrap|cache_field|cache_form)[^\;]+