在 C# 中,我有两个字符串:[I/text]
和[S/100x20]
.
因此,第一个[I/
后面是文本并以]
.
第二个[S/
后面是一个整数,然后是x
,然后是另一个整数,最后是]
。
我需要检查给定的字符串是否与其中一种格式匹配。我尝试了以下方法:
(?<word>.*?) and (?<word>[0-9]x[0-9])
但这似乎不起作用,我错过了[I/...]
和[S/...]
部分。
我怎样才能做到这一点?
遵循正则表达式即可。匹配整个字符串
"(\[I/\w+\])|(\[S/\d+x\d+\])"
这应该做得很好:
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..
}