我在字符串中有一些选项,如 -
string = " a) Red
b)Green (other information)
c) Black
d) Blue " .....
选项可能超过4个。 我希望将各个选项作为数组。我应该使用正则表达式匹配吗?或者通过找到")" indexOf(")")然后拆分它。
答案 0 :(得分: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是后续字符串。