4

キャリッジ リターン (0x0d)、ライン フィード (0x0a)、タブレータ (0x09) を除くすべての Unicode 制御文字に一致する正規表現を取得する必要があります。現在、私の正規表現は次のようになっています。

/\p{C}/u

ここで、これら 3 つの例外を定義する必要があります。

4

1 に答える 1

7

ここでは、文字クラスと組み合わせて、否定的な先読みを使用できると思います。

/(?![\x{000d}\x{000a}\x{0009}])\p{C}/u

これは、否定先読みを使用して、文字が文字クラスで指定されたものの 1 つではないことを表明することです。次に、文字を再度トラバースして、任意の制御文字と一致させます。

単一の Unicode ポイントを指定するために perl 構文を使用しました。

ルックアラウンドに関する詳細な議論はこちら

(これはテストされていないことに注意してください。ただし、概念は正しいと思います。)

于 2009-07-05T01:01:53.757 に答える