2011-05-09 39 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