如果我想验证$/Folder1/Folder2/Folder3/File.xml
始终以$
开头并始终以xml
"$/Folder1/Folder2/Folder3/File.xml"
Pass
"$/Folder1/Folder2/Folder3/File.xm"
Fail
"$/Folder1/Folder2/Folder3/File.py"
Fail
"A/Folder1/Folder2/Folder3/File.xml"
Fail
编辑......所以...正确的正则表达式是......
"^\$.*xml$"
执行正则表达式检查器后的方法看起来像......
public bool ValidateConfigPath(string config)
{
var match = Regex.Match(config, @"^\$.*xml$", RegexOptions.IgnoreCase);
return match.Success;
}
我所有的单元测试都通过......
[TestMethod]
public void ValidateConfigPath_InCorrect1()
{
var t = new TfsWrapper();
var isValid = t.ValidateConfigPath("$/Quantz/Main/CSS Calculator/main.py");
Assert.IsFalse(isValid);
}
[TestMethod]
public void ValidateConfigPath_InCorrect2()
{
var t = new TfsWrapper();
var isValid = t.ValidateConfigPath("C:/Quantz/Main/CSS Calculator/main.xml");
Assert.IsFalse(isValid);
}
[TestMethod]
public void ValidateConfigPath_Correct()
{
var t = new TfsWrapper();
var isValid = t.ValidateConfigPath("$/Quantz/Main/CSS Calculator/main.xml");
Assert.IsTrue(isValid);
}
答案 0 :(得分:2)
^\$.*xml$
^
是字符串的开头。 \$
是一个文字$
字符。 .*
是0或更多的任意字符(事实上,没有换行符,但在输入示例中似乎并不重要)。 xml
实际上只是xml
。 $
是字符串的结尾。
答案 1 :(得分:2)
如果没有严格要求使用正则表达式,我建议更直接的方法是简单地检查起始和结束字符:
string.startswith("$") and string.endswith("xml")
通过上述内容,任何人都可以清楚地了解其意图,包括不理解正则表达式的人。
答案 2 :(得分:1)