检查表达式是否与正则表达式匹配

时间:2013-03-15 15:40:52

标签: c# regex

在C#中,我有两个字符串:[I/text][S/100x20]

因此,第一个是[I/后跟文字,以]结尾。

第二个是[S/后跟一个整数,然后是x,然后是另一个整数,以]结尾。

我需要检查给定字符串是否与其中一种格式匹配。我尝试了以下方法:

(?<word>.*?) and (?<word>[0-9]x[0-9])

但这似乎不起作用,我错过了[I/...][S/...]部分。

我该怎么做?

3 个答案:

答案 0 :(得分:0)

以下正则表达式做到了。匹配整个字符串

"(\[I/\w+\])|(\[S/\d+x\d+\])"

答案 1 :(得分:0)

这应该做得很好:

Regex rex = new Regex(@"\[I/[^\]]+\]|\[S/\d+x\d+\]");

如果[I/text]中的文字只包含字母数字字符,那么@ Oleg使用\w代替[^\]]会更好。同样使用+意味着需要至少有一个前面的字符类,而*允许类是可选的。根据需要调整..

并使用:

string testString1 = "[I/text]";
if(rex.IsMatch(testString1))
{
    // should match..
}

string testString2 = "[S/100x20]";
if(rex.IsMatch(testString2))
{
    // should match..
}

答案 2 :(得分:0)

([I / \ W +]) (S / \ d + X \ d +])

以上作品。

使用http://regexr.com?34543来播放您的表达