我可以在. net断言中添加正则表达式吗?

本文关键字:正则表达式 添加 net 断言 我可以 | 更新日期: 2023-09-27 18:13:07

我试图从一组页面中取出页面源,并在结果上运行断言,这是一个测试,运行以检查我们是否在我们的网站上爬行特定的页面。有时返回的结果是URL字符串的不同情况,我想在我检查页面源的断言中考虑到这一点。这可能是错误的方式来做到这一点,但我想知道是否有一种方法来添加在。net regex命令的断言文本。我有一个断言:

Assert.IsTrue(driver.PageSource.Contains("/explore"));

但是是否有一种方法可以确保我可以捕获explore, explore或explore ?我想我可以在这里使用(? I),但这似乎不起作用。我更习惯Perl和它的正则表达式功能,但对于c#和。net,我有点迷失在我可以和不可以使用内联正则表达式命令。

我可以在. net断言中添加正则表达式吗?

安东尼的回答是有效的,你真的不需要正则表达式。但是如果你想用它,你可以用

Regex.IsMatch(driver.PageSource, "/explore", RegexOptions.IgnoreCase)

您不需要正则表达式来执行不区分大小写的检查。使用IndexOf并比较结果是否大于-1。IndexOf具有重载,允许您指定大小写是否重要。比如

bool containsExplore = driver.PageSource.IndexOf("/explore", StringComparison.InvariantCultureIgnoreCase) > -1;
Assert.IsTrue(containsExplore);

尝试:

RegEx.Match("string", "regexp", RegExOptions.IgnoreCase).Success

如何使用

StringAssert.Matches(string, regex);

在你的例子中,这将转换为

StringAssert.Matches("drive.PageSource", "'/explore");