2011-07-03 19 views
1

文字列に一致する正規表現パターンを探しています。引用符で囲まれた文字列。私は何をしようとしていることは、これらの文字列を解析している:私は今持っているパターンがある正規表現文字列に一致するパターン

PRINT "test" 
PRINT "Hello":PRINT "World" 

:「\」* \「」。。最初の行を細かく解析します。/testを返しますが、2行目は "Hello"を返します。PRINT "World" /は間違っています。最初の引用と2番目の引用の間に一致する必要があります。最初の引用符と最後の引用符の間にあるものは、行全体で一致するように見えます。

ご協力いただければ幸いです。それが問題ならば、これは.NET Regexです。

答えて

5

.*は貪欲です。それは文字列の最後に一致します。なぜなら、何もその間に停止するように指示しないからです。"[^"]*も欲張りですが、恣意的ではありません。

あるいはまたMSDN on Quantifiersを参照して、非貪欲マッチング

 
".*?" 

を使用します。

+0

このパターンは魅力的でした。 Regexの貪欲/非貪欲のルールに助けてくれてありがとう。 – Icemanind

+0

@ice:ようこそ。ところで、私は@JohnWeldonも投票に値すると思います。 – Tomalak

+0

が合意しました。私はちょうど彼をupvoted – Icemanind

2

あなたの問題は、あなたの正規表現の非欲張りバージョンでは以下のようになり..正規表現は、彼らが彼らができる最長一致文字列を拾うよ意味、デフォルトで貪欲であるということです。私が代わりに+を使用

"\"[^"]+?\" 

あなたが空でない文字列とのみ一致したいと思っていると仮定します。

関連する問題