在 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..
}