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

Php 如何解析这个:char(x)?,php,parsing,yaml,Php,Parsing,Yaml,我使用YAML来获取MySQL模式,我需要只解析这类字符串CHAR(60)或VARCHAR(90)等等 解析结果如下所示: array('CHAR', 60); array('VARCHAR', 90); 下面的正则表达式将执行此操作。如果不是每行一个,还应在开始斜杠之后和结束斜杠之前添加\b边界 $s = "VARCHAR(90)"; $matches = array(); preg_match("/([A-Z]+)\(([0-9]+)\)/", $s, $matches); // The

我使用YAML来获取MySQL模式,我需要只解析这类字符串
CHAR(60)
VARCHAR(90)
等等

解析结果如下所示:

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

下面的正则表达式将执行此操作。如果不是每行一个,还应在开始斜杠之后和结束斜杠之前添加
\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]);

编辑:第一次使
$匹配项
数组键出错。应该是1和2,而不是0和1。

下面的正则表达式可以做到这一点。如果不是每行一个,还应在开始斜杠之后和结束斜杠之前添加
\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]);

编辑:第一次使
$匹配项
数组键出错。应该是1&2,而不是0&1。

我找到了一个更好的解决方案:只要访问此URL,您就会看到示例。我找到了一个更好的解决方案:只要访问此URL,您就会看到示例。