1

単語の境界に使用\bすると、たとえばパターンなどのASCIIアルファベットのみを理解するようです

\bM\b一致しますaaaa M bbbbbb

しかし、私が持っている場合

aaaaa Mädchen 

それも、ä言葉の終わりと見なされるためです。

この正規表現 lib が Unicode 文字列も受け入れるように設定するフラグはありますか? このライブラリがそれほど原始的である可能性は非常に低いようですが、オプションには含まれていません

TRegExOption = (roNone, roIgnoreCase, roMultiLine, roExplicitCapture,
roCompiled, roSingleLine, roIgnorePatternSpace);
4

2 に答える 2

3

regular-expressions.infoによると、Delphi regex libはPCREに基づいており、PCREで事前定義された文字クラス\wはASCIIベースのみであるため、ASCIIベース\bのみです。

于 2013-01-08T07:25:29.480 に答える
2

ルックアラウンドを使用して、「単語」の好みの定義に合わせて独自の単語境界を作成できます。たとえば、「M」を単語として一致させ、すべての Unicode 文字、数字、記号を単語の文字として扱いたい場合は、次のように使用します。

(?<![\pL\pN\pM])M(?![\pL\pN\pM])
于 2013-07-17T13:30:24.373 に答える