私の文を2つの部分に分けたいと思います。彼らは英語の手紙と非英語の手紙でできているからです。私は正規表現を使用して、通常の文字と文字を得るためのpreg_splitメソッドを使用しています。これは反対ですが、私は英語だけではなく、日本語でのみ残されています。私が一緒に仕事preg_splitを英語で分割した文字列(英語以外の文字)
文字列:
すぐに諦めて昼寝をするかも知れない。 I may give up soon and just nap instead.
私の試み:あなたが見ることができるように
$parts = preg_split("/[ -~]+$/", $cleanline); // $cleanline is the string above
print_r($parts);
マイ結果
Array ([0] => すぐに諦めて昼寝をするかも知れない。 [1] =>)
、私は空の第2の値を得ますか。英語と英語以外のテキストを2つの異なる文字列に変換するにはどうすればよいですか?正しい正規表現を使用しても(私がテストしたものから)英語のテキストが返されないのはなぜですか?
この '[ - 〜]'スペースとチルダとの間の範囲である、あなたは何を期待しているということでしょうか?私はあなた自身の文字列としてすべての英語の単語を与える ' - 〜] +'と、1つのインデックス(またはスペースがあれば複数のもの)として非英語を欲しいと思います。 '-'はエスケープされていないか、文字クラスの最初/最後の文字でない限り範囲です。 – chris85
'/(。+)([ - 〜])+ $ /'別のものをキャプチャしたいテキストをキャプチャグループに入れる必要があると思われます。 –
@RedMercury 'preg_split'はキャプチャしません。 – chris85