0

我有一个正则表达式模式

    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

4

3 回答 3

1

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

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

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

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

所有这些都符合模式。

于 2012-10-10T10:51:04.127 回答
0
string _pattern = @"\d{4}-(\d{2}\/\d{2}\/\d{4})?"
于 2012-10-10T10:52:30.507 回答
0

我的建议是someString使用已知与模式匹配的字符串进行后缀并对其进行测试:

string good = "0007-08/02/2012";
bool isMatch = Regex.Match(someString + good.Substring(someString.Length), _pattern)
于 2012-10-10T11:00:41.917 回答