-1

如果我想验证$/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);
    }
4

3 回答 3

2

你读过教程吗?

^\$.*xml$

^是字符串的开头。\$是文字$字符。.*是 0 个或多个任意字符(实际上,没有换行符,但这在您的输入示例中似乎无关紧要)。xml真的只是xml。并且$是字符串的结尾。

于 2012-11-18T17:46:21.030 回答
2

如果对使用正则表达式没有严格要求,我建议使用更直接的方法,即简单地检查开始和结束字符:

string.startswith("$") and string.endswith("xml")

有了上面的内容,任何人的意图都是绝对清楚的,包括不懂正则表达式的人。

于 2012-11-18T17:55:09.803 回答
1

试试这个:-

  ^\$.*xml$

检查此链接以获取详细信息

于 2012-11-18T17:48:49.350 回答