3

「Đ」と「D」を比較しようとすると問題が発生し、true を返す必要がありますが、「Đ」を正規表現に置き換えることができないため、Locale English は false を返します。

"\\p{Block=CombiningDiacriticalMarks}+".

4

1 に答える 1

3

文字クラス[\u0110D]は、Đ または D のいずれかに一致します (Đ はコード ポイント U+0110)。

英語以外の文字のマッチング、入門書

一般的な例の 1 つは、「über-geek」という言葉です。uの上にウムラウトがあるかどうかに関係なく、その単語を一致させるにはどうすればよいですか? シンプル: [\u0252u]ber-geek「über-geek」または「uber-geek」のいずれかに一致します。

正規表現エンジンによっては、ロケール固有の文字を照合する優れた方法が複数あります。特定の実装に関する本を購入して、そのしわを発見してください。ところで、Regular-Expressions.info のUnicode ページで、Unicode 固有の正規表現に関する優れたリソースを見つけることができます。

任意の文字を一致させたい場合はどうすればよいですか? \X文字クラスにアクセスできる場合.は、Unicode コンテキストで として機能します。これは、結合して 1 つの書記素を形成する複数の Unicode コード ポイントが、1 つの「文字」としてエンジンに登録されることを意味します。

注:私はこの回答を「盗もう」とは考えていません。Ted Hopp がコメントから外した場合は、私の回答を削除します。英語以外の正規表現の一致を探している人が、この質問が実際に回答されたことを確認できるようにしたかっただけです.

于 2013-07-11T19:34:16.627 に答える