如何查看字符串是否包含另一个带引号的字符串?

时间:2017-08-24 18:15:50

标签: c# html string

我试图查看一个大字符串是否包含这行HTML:

<label ng-class="choiceCaptionClass" class="ng-binding choice-caption">Was this information helpful?</label>

正如您所看到的,此代码段在多个位置都有引号,当我执行以下操作时会引起问题:

Assert.IsTrue(responseContent.Contains("<label ng-class="choiceCaptionClass" class="ng - binding choice - caption">Was this information helpful?</label>"));

我尝试过这两种定义字符串的方法:

@"<label ng-class=""choiceCaptionClass"" class=""ng - binding choice - caption"">Was this information helpful?</label>"

"<label ng-class=\"choiceCaptionClass\" class=\"ng - binding choice - caption\">Was this information helpful?</label>"

但是在每种情况下,Contains()方法都会使用双引号或反斜杠查找文字字符串。有没有其他方法可以定义此字符串,以便我可以正确搜索它?

2 个答案:

答案 0 :(得分:2)

使用反斜杠转义双引号是正确的做法。

您的搜索失败的原因是字符串实际上并不匹配。例如,在带有反斜杠的版本中,某些破折号周围有空格,但HTML字符串没有。

答案 1 :(得分:1)

尝试使用正则表达式。我为你制作了这个,但你可以测试你自己的正则表达式here

var regex = new Regex(@"<label\s+ng-class\s*=\s*""choiceCaptionClass""\s+class\s*=\s*""ng-binding choice-caption""\s*>\s*Was this information helpful\?\s*</label>", RegexOptions.IgnoreCase);
Assert.IsTrue(regex.IsMatch(responseContent));

如果这不起作用,请使用测试工具弄清楚模式的哪个部分正在起作用。

希望这有帮助!