2011-05-09 59 views
0

我用YAML来获得MySQL架构,我需要解析只有这几样串CHAR(60)VARCHAR(90)等..如何解析这个:char(x)?

解析结果会是这样:

array('CHAR', 60); 
array('VARCHAR', 90); 
+0

我找到了一个更好的解决方案:只要访问这个URL [preg_match#101618](http://www.php.net/manual/en/function.preg-match。 php#101618),你会看到这个例子。 – dino 2011-05-09 18:30:53

回答

3

下面的正则表达式会做它。如果这些行不是每行发生一次,则还应在开始斜线之后和关闭之前添加\b边界。

$s = "VARCHAR(90)"; 
$matches = array(); 
preg_match("/([A-Z]+)\(([0-9]+)\)/", $s, $matches); 

// Then use the matched values into your array. 
array($matches[1], $matches[2]); 

EDIT:有$matches数组键错误的第一次。应该是1 & 2而不是0 & 1.

+0

太棒了!谢谢。 – dino 2011-05-09 02:34:31