2011-01-17 58 views
0

入力行が「OK」かどうかをチェックする機能が1つあります。正規表現に一致する正規表現

#include <tr1/regex> 

bool lineIsValid(string line) { 
    const tr1::regex pattern("[^-]{1,30} - [^-]{1,30}"); 
    return tr1::regex_match(line, pattern); 
} 

lineIsValid("test - test"); 

この関数はfalseを返します。どうして?

+0

これは私にとってうまく一致します。あなたの入力はあなたがここに投稿したものと同じですか? – JaredC

+0

私と一緒にmathces ... – CSharpenter

+0

あなたのコードをコピーして貼り付けただけで、あなたの入力が正しいことを再確認します。 – DeusAduro

答えて

2

おそらく構文はokですが、実装によって異なります。 これをチェックするpost

またはthis

は、さらなる調査の後、私は(我々は)は、Visual Studio 2008の[と のVisual Studio 2010のいくつかの非常に初期のバージョンを]でMicrosoftが提供TR1 フレームワークはバグがあると判断しています 私はなぜDinkumwareによって提供される他の正規表現がバグではないのか疑問に思います。 それとも?

+0

これを掘り起こすために+1 – JaredC

0

私はそれが一致するはずだと思いました。

tr1ライブラリの実装に潜在的なバグはありますか?おそらく、範囲指定子として使用される " - "と混同している可能性があります。