在C#中,我有两个字符串:[I/text]
和[S/100x20]
。
因此,第一个是[I/
后跟文字,以]
结尾。
第二个是[S/
后跟一个整数,然后是x
,然后是另一个整数,以]
结尾。
我需要检查给定字符串是否与其中一种格式匹配。我尝试了以下方法:
(?<word>.*?) and (?<word>[0-9]x[0-9])
但这似乎不起作用,我错过了[I/...]
和[S/...]
部分。
我该怎么做?
答案 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)