2015-12-08 11 views
17

正規表現[[:alpha:]]もメモ帳++の中国語の単語と一致しますか?たとえば、中文Notepad ++の[[:alpha:]]も中国語の単語と一致しますか?

をメモ帳++

アルファのドキュメントによると:ASCII文字が

中国語の単語は、ASCII文字ではありませんので、なぜ正規表現式は、それらを一致させるのでしょうか?

+0

? 'u'修飾子が必要になるかもしれません。 https://regex101.com/r/zT4mO1/1 – chris85

+0

@ chris85ああ、それは中国語の単語に一致するように設計されていますか?しかし私は[[:alpha:]]はASCII文字にしかマッチしないと思った。中国語の単語はASCII文字ですか? – user15964

+0

http://www.regular-expressions.info/posixbrackets.htmlをご覧ください。あなたがasciiだけをサポートしているのであれば、asciiだけになります。 – chris85

答えて

18

[:alpha:]クラスは、通常、アルファベット文字と一致します。これは、使用しているエンコーディングに応じて、ASCII文字よりもはるかに多くなります。

は、「ASCII文字」と書かれていますが、Boost C++ Regex libraryを使って正規表現が実装されていることも示しています。ドキュメントにより、[:alpha:]has the standard, broader meaning in this libraryが確認されます。

これは、メモ帳++ドキュメントでちょうど間違いであるように思われます。

ASCII文字と一致させる必要がある場合は、開始点として[a-zA-Z]のようなものを使用します。それは `中文`を見つけられないことを、あなたがそのコードを使用している

+0

だから、中国語の単語はアルファベット文字ですか?この拡張子はまったく役に立たないと言わなければならない – user15964

+16

*あなたの*アルファベットではないという理由だけで、アルファベットの一部ではありません! – Troyseph

+3

@Troyseph私はあなたに同意しますが、技術的には中国語にアルファベットはありません。それは、決定論的な音素要素の補足リストを備えたロググラフ作成システムである。 = P – That1Guy

関連する問題