それらは空白と小文字で続いている場合
'~\w+[.?!]+\s+(?=\p{Ll})~u'
を使用して、文の句読点のこれらの端を一致させるためには、regex demo
説明参照してください:
\w+
を - 1 +英数字/アンダースコア記号
[.?!]+
- 1+リテラル.
、?
または!
\s+
- 1+空白記号...
(?=\p{Ll})
- 1+空白文字と続くが、小文字で続く(参照\p{Ll}
詳細とより多くのUnicodeカテゴリクラスのUnicode character properties )。
PHPでは、Unicode文字列を使用しているため、/u
修飾子を使用してください。ここで
は
PHP code demoです:
$re = '~\w+[.?!]+\s+(?=\p{Ll})~u';
$arr = array("Howdy world? lorem", "Howdy world... lorem", "Howdy world? lorem", "What is reality. howdy ",
"Howdy you. Lorem ", "Howdy you. 進撃の ");
print_r(preg_grep($re, $arr));
// => Array([0] => Howdy world? lorem [1] => Howdy world... lorem
//[2] => Howdy world? lorem [3] => What is reality. howdy)
空白文字と小文字の後に続く場合は、文末の句読点の末尾に一致させますか? –
はい、複数の空白にすることはできますが、私は上記の3番目の例と同様です。 –