1

文字列が与えられた場合、その文字列に$LOOPという単語が厳密に含まれていることを確認する必要があります。例えば、

$LOOP(0,"0000","00000009","00000010",5000,100,0,0,0,0,10,0,0);

真として戻る

$LOOP_A("asdf","zxcv")
$LOOP_INIT(0);

falseとして返されます。

string.Contains($ LOOP)で発生している問題は、以下の2つの文字列に対してもtrueを返すことです。

どうすればこの問題を解決できますか?

編集1:

他の例を次に示します。

$LOOPING should return false
$LOOP$LOOP should return false
$LOOP(anything here) should return true
$LOOP        (Anything here) should return true
$asdLOOP should return false
4

3 に答える 3

3

おそらくあなたはただパターンを使うことができます\$LOOP\(.*\);か?

\$LOOP[^_\w]_または単語文字が後に続か$LOOP ない場合に一致します。

または、でパターンを分割して$LOOP、結果のフラグメントのいずれかが単語の一部ではない文字で始まっているかどうかを確認することもできます(たとえば、で(はありません_

于 2012-08-30T04:28:25.930 に答える
2

あなたが探しているのは、おそらく Word 境界を持つ REGEX です。これはトリックを行います

Regex re = new Regex(@"\$LOOP\b");
于 2012-08-30T04:46:23.710 に答える
0

これが C# と .NET であると仮定すると、目的に合わせて RegEx を使用できます。

bool Res = System.Text.RegularExpressions.Regex.IsMatch(YourString, @"^.*\$LOOP\b.*$");

しかし、あなたの質問は少し曖昧だと思います。文字列「$LOOP」の後にどの文字を許可したいですか? たとえば、「$LOOPING」または「$LOOP$LOOP」または「$LOOP (何か)」と一致する必要がありますか? それが決まれば、上記の式は改善できます。

于 2012-08-30T04:38:19.393 に答える