如何解析这个:char(x)?

时间:2011-05-09 02:12:03

标签: php parsing yaml

我使用YAML来获取MySQL架构,我需要仅解析这些字符串 CHAR(60)VARCHAR(90)等。

解析结果如下:

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

1 个答案:

答案 0 :(得分: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]);

编辑:第一次$matches数组键错误。应该是1& 2,不是0& 1。