0

以下のサンプルの最初の文字のみを一致させようとしています。

サンプル文字列:C/C++/Objective C/Objective-C/ObjectiveC/objectiveC

私の不完全な正規表現:(?![O|o]bjective[ |-]?)C(?!\+\+)

どー。

4

1 に答える 1

0

これを試して:

(?<![Oo]bjective[ -]?)C(?!\+\+)


修正は次のとおりです。

  • 否定先読み ( (?<!...)ビット) の代わりに否定後読みを使用します。
  • [文字クラス ( ...]ビット)からパイプ文字を削除しました。

現在の正規表現は、などと一致するため、\bの両側に のペアを追加することも価値があるかもしれません。CCoconutBBCCFML

-また、文字クラス内では、 が最初または最後の文字でない場合は特別であることも指摘する価値があります。このような状況でもエスケープすることを好む人もいます。つまり[ \-]、後の文字が誤って後に追加された場合です。

于 2009-10-17T21:39:51.707 に答える