我有一个这样的字符串:
$str = "1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway"
我想做的是有一个这样的输出并将每个问题存储到一个div
:
1. What is love?
a. Haddaway b. Haxxaway c. Hassaway d. Hannaway
2. What is love?
a. Haddaway b. Haxxaway c. Hassaway d. Hannaway
截至目前,我为正则表达式创建了这个虚构的代码(仍然是新手,对不起!
$str = "1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway"
$repl = preg_replace('#('d+:.*?)(?='d+:|$) *#', "$1", $str);
echo "<div>$repl</div>";
输出是这样的,它存储在一个div
上:
1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway
我对如何区分每个问题以及如何对每个选择进行div
感到困惑......任何人都可以就我该怎么办提供一些建议吗?
你可以
像这样使用preg_split
:
$str = "1. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway 2. What is love? a. Haddaway b. Haxxaway c. Hassaway d. Hannaway";
print_r(preg_split('/(?=[a'd]+'.)/', $str, -1, PREG_SPLIT_NO_EMPTY));
Array
(
[0] => 1. What is love?
[1] => a. Haddaway b. Haxxaway c. Hassaway d. Hannaway
[2] => 2. What is love?
[3] => a. Haddaway b. Haxxaway c. Hassaway d. Hannaway
)
(?=[a'd]+'.)
是一个前瞻,当后跟number or letter a
加一个点时会分裂。
假设您的输入始终是连贯的。
AFAIK,您可以使用PHP标记器解决此问题。对于每个问题 (1 ... ?),您可以重新格式化文本以添加所需的div