2011-01-28 24 views
0

CP_と一致するRegExパターンはCPLAT::CP_ではありませんか?RegExが別の文字列に続く文字列と一致しない場合

+0

RegExを読むことができるということは、ある言語を知っているからといって、あなたが努力して別のものを取り上げることを自動的には意味しません。特にはっきりとは異なるイディオムを使用します。例えばLispを試してみてください。 - RegExが特に難しいのではなく、アクセス可能なすべてではないので、できるだけ頻繁に正規表現を可能にするツールを使用することをお勧めします。 – ocodo

答えて

0

あなたはあなたの正規表現として "^ CP_"を使いたいと思います。 ^は、入力の開始時にこのパターンをチェックする式を指示します。

http://www.regular-expressions.info/anchors.html

+0

^単語/シンボルの最初の文字ではなく、文字列/行の最初の文字にアンカーします。 OPのようなサウンドは、文字列内の1つの単語を比較するだけでなく、ファイルを検索する必要がありました。 – CoreyStup

+0

@corey-yupファイル全体を検索する – Axl

3
(?<!CPLAT::)CP_ 

は、(正規表現の風味に応じて)gオプションを使用:

が付け加えていないCP_のすべてのインスタンスの場合がございますnegative lookbehind

0
[^:]CP_ 

を使用します1行に2つ以上一致すると予想されます。

+0

PerlやJavaScriptのようないくつかのフレーバでは 'g'フラグが必要です。同じ行または別の行を検索する場合は問題ありません。 'm'修飾子は完全に無関係です。 '^'と '$'アンカーの意味を変更するだけです。 –

+0

私の間違いは、いくつかのフレーバーでは 'm'は' g'と同じだと思っていました。 – ocodo

1

また、RegEx for Dummiesのような非常に簡単なチュートリアルはありますか?それは私がC + +でコードが奇妙なのですが、RegExを簡単に把握することはできませんか?

いいえ、それは変わっていません。正規表現の習得には、自然には生まれない特定の考え方が必要です。そして、C++や他の言語でプログラミングすることは助けにはならないと思われます。何かあれば、それはハンディキャップです。良いチュートリアルhereがありますが、最高のチュートリアルでさえ、ピジンレベルにしかなりません。正規表現の周りに頭を浮かべたいのであれば、The Bookが必要です。

もう1つの問題は正規表現の標準がないことです。すべてのプログラミング言語、すべてのフレームワーク、すべてのIDEまたはテキストエディタは、正規表現の独自の「風味」を持っているようです。あるものは同じことをするために異なる構文を使用する一方で、他のものはそうしないものがあります。そこにはThe Other Bookが入っています。私たちがよく使う正規表現の種類の多くの例は、いくつかの最も一般的なフレーバーであり、完全に説明されています。

関連する問題