如何在php中使用preg_replace函数动态删除int?
我有以下代码
CREATE TABLE vtiger_meter ( meterid int(11) DEFAULT NULL, meterno int(8) DEFAULT NULL, cdate date DEFAULT NULL, address varchar(255) DEFAULT NULL, customer varchar(100) DEFAULT NULL )
我想要以下代码
CREATE TABLE vtiger_meter ( meterid int DEFAULT NULL, meterno int DEFAULT NULL, cdate date DEFAULT NULL, address varchar(255) DEFAULT NULL, customer varchar(100) DEFAULT NULL )
我想要输出。在int之后必须有一个动态值我要删除那个。如何做到这一点?
我使用自定义函数爆炸,但我想在preg_replace中使用它。
答案 0 :(得分:1)
$input = 'CREATE TABLE vtiger_meter (
meterid int(11) DEFAULT NULL,
meterno int(8) DEFAULT NULL,
cdate date DEFAULT NULL,
address varchar(255) DEFAULT NULL,
customer varchar(100) DEFAULT NULL )';
$output = preg_replace('/int\s*\(\s*\d+\s*\)/', 'int ', $input);
echo $output;
答案 1 :(得分:1)
使用preg_replace,将int\(\d+\)\s*
替换为int
。
$statement = preg_replace('/int\(\d+\)\s*/', 'int ', $statement);
注意'int'之后的空格。
答案 2 :(得分:0)
您可以尝试这样
$str = "CREATE TABLE vtiger_meter ( meterid int(11) DEFAULT NULL, meterno int(25534) DEFAULT NULL, cdate date DEFAULT NULL, address varchar(255) DEFAULT NULL, customer varchar(100) DEFAULT NULL )";
preg_replace("/ int\s*\(\s*([0-9]+)\s*\\)/", " int ", $str);
print $str;
输出
喜欢
CREATE TABLE vtiger_meter ( meterid int DEFAULT NULL, meterno int DEFAULT NULL, cdate date DEFAULT NULL, address varchar(255) DEFAULT NULL, customer varchar(100) DEFAULT NULL )
有关详细信息,请参阅此链接http://us2.php.net/preg_replace
答案 3 :(得分:0)
如果您只想替换int
而不是tinyint
或longint
以及所有这些,您可以(使用字边界\b
进行更换案例不敏感的)
$str = preg_replace('/\bint\(\d+\)/i', 'int', $str);