2012-08-30 93 views
1

的一部分,我需要驗證字符串包含單詞$ LOOP嚴格。例如,檢索(驗證)給定一個字符串的字符串

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

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

將返回假將返回爲真。

我與string.Contains遇到的問題($ LOOP)是,它也爲下面的兩個字符串返回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 

回答

2

你在找什麼與Word邊界也許正則表達式。這將這樣的伎倆

Regex re = new Regex(@"\$LOOP\b"); 
3

也許你可以只使用模式\$LOOP\(.*\);

\$LOOP[^_\w]將匹配$LOOP而不是後跟_或單詞字符。

或者,也可以在$LOOP分裂圖案和查看是否有任何所得到的片段的同一個字符不是你的話一部分(例如,(但不_

0

假設這是C#開始和.NET,您可以使用正則表達式:

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

但是,我想說你的問題有點含糊不清。在字符串「$ LOOP」之後,你想要允許哪些字符?例如,它應該匹配「$ LOOPING」還是「$ LOOP $ LOOP」或「$ LOOP(something)」?一旦你決定,上述表達式可以改進。

+0

更新問題 – l46kok

相關問題