0

すべての制御文字を削除して、改行 ( U+2028) 文字を除外する方法は?

preg_replace('/[\p{Cc}]/', '', $response);

http://uk.php.net/manual/en/regexp.reference.unicode.php

4

2 に答える 2

2

あなたは否定的な先読みを使うことができます:

/(?!\x{2028})\p{Cc}/u

また、Unicodeと一致するようにUTF8モードを有効にする必要があります。

于 2013-03-01T11:02:54.400 に答える
2

二重否定を使用できます

preg_replace('/[^\P{Cc}\x{2028}]/u', '', $response);

\P{Cc}の否定です\p{Cc}

[^...]否定された文字クラスです

したがって、制御文字ではなく、 ではないすべてのものに一致します\x{2028}。このようにして、定義済みの文字クラスから特定の文字を除外できます。

于 2013-03-01T11:06:12.913 に答える