0 レビュー
2 回答
php-utf-8文字列を分解または分割しますが、区切り文字は文字列に付加したままにします
文字列をコンマまたはピリオドで区切られた要素の配列に変換したいのですが、各要素は区切り文字を保持しています。たとえば、米国独立宣言の前文の最初の文は次のようになります。
- 人間の出来事の過程にあるとき
- ある人が別の人とつながっている政治的バンドを解散させる必要があります。
- そして地球の力の中で引き受けるために
- 自然の法則と自然の神の法則がそれらに与える権利を与える別個の平等なステーション
- 人類の意見を適切に尊重するには、分離を促す原因を宣言する必要があります。
それを行うための効率的な方法は何でしょうか?
PREG_SPLIT_DELIM_CAPTURE
フラグを指定したpreg_split
を使用して、ピースと区切り文字の両方を配列に保存する方法を知っていますが、私は1回の操作で文の断片に追加されたコンマとピリオドを保持する方法があるかどうかわからない。必要なものをより正確に説明する方法は、
preg_split
で、区切り文字はコンマやピリオドなどが前に付いたものになります >。正規表現でそれが許可されるかどうかはわかりません...そして、これはutf8に対応している必要があります。
わからない
0
レビュー
答え :
解決策:
これは機能しますか?
if (preg_match_all("/([^.,!?]*[.,!?])/", $str, $matches)) {
var_dump($matches[1]);
}
わからない
0
レビュー
答え :
解決策:
私があなたを正しく理解している場合、あなたは次のようなものを探しています:
$str = 'asdf, qwer, zxcv, uiop';
$arr = preg_split('/(,)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
$tmp = array();
for ($i = 0; $i < sizeof($arr); $i += 2) {
$delim = isset($arr[$i + 1]) ? $arr[$i + 1] : '';
$tmp[] = $arr[$i] . $delim;
}
print_r($tmp);
印刷するもの:
Array
(
[0] => asdf,
[1] => qwer,
[2] => zxcv,
[3] => uiop
)
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。