2017-10-04 30 views
-2

我有一個字符串的一些選項,如 -正則表達式PHP的劈裂選擇題的選項

string = " a) Red 
       b)Green (other information) 
       c) Black 
        d) Blue " ..... 

選項可能會超過4 我想各個選項的數組。我應該使用正則表達式匹配嗎?或者通過查找「)」indexOf(「)」)然後分割它。

回答

1

你應該看看諸如www.regex101.com之類的東西,而不是讓其他人爲你寫代碼。

另外,你正在嘗試實現的解決方案似乎是一個非常粗略的解決方案,我會嘗試查看是否有任何其他方式來格式化首次嘗試用作數組的數據。

話雖這麼說,你可以實現以下解決方案來獲得你所需要的:

preg_match_all('/^([a-z])\)(.*)/mi', $string, $matches, PREG_SET_ORDER, 0); 

foreach($matches AS $option){ 
    echo "<option value=\"{$option[1]}\">{option[2]}</option>"; 
} 

此正則表達式會找到一個模式的任何匹配以字母開頭,後面),然後用任何後續字符串之後,直到下一個匹配,並將它們放入一個數組中,其中基於零的索引是整個字符串,1是前面的字母),2是後續字符串。