各ソリューション間に改行があることが保証されていますか? うん...
JavaScriptでは、次のいずれかのソリューションを使用できます。
メソッドを使用するsplit
と、次のことができます。
results = myString.split(/[\r\n]+/);
次の方法を使用するmatch()
と、これは改行ではない部分に一致します。
results = myString.match(/[^\r\n]+/g);
PHPでは、次のソリューションのいずれかを使用して目的のタスクを達成します。
$wanted = preg_split('~\R+(?!$)~u', $data);
print_r($wanted);
見るlive working demo
\R
一般的な改行に一致します。つまり、Unicode によって改行シーケンスと見なされるものはすべてです。\v
これには、 (縦の空白) と複数文字シーケンスによって一致するすべての文字が含まれます\x0D\x0A
。u
適切に使用するには、修飾子を有効にする必要があります。修飾子は PCREのu
追加機能をオンにし、パターン文字列は UTF-8 として扱われます。
$
空の空白を含めないように、(行末) の後に否定先読みを使用しました。
ここで否定を使用すると、分割と一致の使用を避けることができます。
$wanted = preg_match_all('~[^\r\n]+~', $data, $matches);
print_r($matches);
見るlive working demo
出力
Array
(
[0] => The study of standards for what is right and what is wrong is called _.
[1] => a. pure science
[2] => b. applied science
[3] => c. ethics
[4] => d. technology
[5] => ... unknown number of choices ...
[6] => ANS: C
)