检索(验证)字符串的一部分

时间:2012-08-30 04:18:35

标签: c# .net wpf regex string

给定一个字符串,我需要验证字符串是否严格包含单词$ LOOP。例如,

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

时,

将返回true

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

将返回false。

我对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

3 个答案:

答案 0 :(得分:3)

也许您可以使用模式\$LOOP\(.*\);

\$LOOP[^_\w]将匹配$LOOP 而不是,后跟_或单词字符。

或者,您可以在$LOOP分割模式并查看是否有任何结果片段以不属于您的字词的字符开头(例如,(但不是{{1} })

答案 1 :(得分:2)

您正在寻找的可能是带有Word边界的REGEX。这样就可以了解

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

答案 2 :(得分:0)

假设这是C#和.NET,您可以将RegEx用于您的目的:

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

但是,我会说你的问题有点含糊不清。在字符串“$ LOOP”之后,您想要允许哪些字符?例如,它应该匹配“$ LOOPING”或“$ LOOP $ LOOP”还是“$ LOOP(something)”?一旦你决定,可以改进上面的表达。