正则表达式子字符串与模式匹配

时间:2012-10-10 10:44:42

标签: c# regex string

我有像RegEx Patern一样的

    string _pattern = @"\d{4}-\d{2}\/\d{2}\/\d{4}";

如何检查字符串值是完全属于此模式还是此模式的一部分。

例如,如果我发送

        string someString= "0007-08/02/2012";
        Match m = Regex.Match(someString, _pattern);
        //i get a full match

但如果我发送

        string someString="0007-"
        //how do i check if this string value matches that pattern and is a substring.

除了使用正则表达式之外,还有其他方法吗?

谢谢, CSK

3 个答案:

答案 0 :(得分:1)

如果要匹配模式的任何子字符串,则必须添加“?”在所有选项中,如下所示:

string _pattern = @"(\d{4})?(-)?(\d{2})?(\/)?(\d{2})?(\/)?(\d{4})?";

此模式将匹配原始模式的任何子字符串。

i.e.: 
0007-08/02/2012
0007-
08/02/2012
08/
/02/2012

所有这些都符合模式。

答案 1 :(得分:0)

string _pattern = @"\d{4}-(\d{2}\/\d{2}\/\d{4})?"

答案 2 :(得分:0)

我的建议是使用已知与模式匹配的字符串postfix someString并测试它:

string good = "0007-08/02/2012";
bool isMatch = Regex.Match(someString + good.Substring(someString.Length), _pattern)