0

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

因此,第一个[I/后面是文本并以].

第二个[S/后面是一个整数,然后是x,然后是另一个整数,最后是]

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

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

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

我怎样才能做到这一点?

4

3 回答 3

0

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

以上作品。

使用http://regexr.com?34543玩弄你的表情

于 2013-03-15T15:49:12.117 回答
0

遵循正则表达式即可。匹配整个字符串

"(\[I/\w+\])|(\[S/\d+x\d+\])"
于 2013-03-15T15:46:37.237 回答
0

这应该做得很好:

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

如果文本[I/text]应该只包含字母数字字符,那么@Oleg 使用\w而不是[^\]]会更好。还 using+意味着至少需要有一个前面的字符类,并且*allow 类是可选的。根据需要调整..

并使用:

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

string testString2 = "[S/100x20]";
if(rex.IsMatch(testString2))
{
    // should match..
}
于 2013-03-15T15:46:48.530 回答