1

次の定義で指定されたレクサーがあります。

ws      [ \t\n]+
punc            (\.|\,|\!|\?)
word        ({punc}|[a-zA-Z0-9])*
special         (\%|\_|\&|\$|\#)

解析する必要のあるutf-8ファイルがいくつかありますが、それらの文字に関しては当然、問題が発生します。過去に何度か同様の質問があったことは知っていますが、どれも役に立ちませんでした。私はこの答えで与えられたアプローチを使おうとしましたが、失敗しました。問題はword上記の定義にあると思いますか?

誰かがフレックスでUTF-8エンコーディングを使用する一般的な概念の詳細を教えてくれると本当に助かります。

4

1 に答える 1

2

試してみてください(プロセス-フレックス-8を使用):

%%
ws      [ \t\n]+
punc            (\.|\,|\!|\?)
word        ({punc}|[a-zA-Z0-9\x80-\xf3])*
special         (\%|\_|\&|\$|\#)

%%

(コーディングは少しコースグレインです...)OPによって作成された、 Kazの回答につながるリンクは、許可されたシーケンスを使用すると、はるかに正確になります。

于 2012-12-09T17:50:34.637 に答える