0

C#では、2つの文字列があります:[I/text][S/100x20]

したがって、最初のものの[I/後にテキストが続き、で終わり]ます。

そして、2番目の[S/後に整数、次にx、別の整数が続き、最後に。が続き]ます。

指定された文字列がこの形式のいずれかに一致するかどうかを確認する必要があります。私は次のことを試しました:

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

しかし、これはうまくいかないようで、私は[I/...]との[S/...]部分が欠けています。

これどうやってするの?

4

3 に答える 3

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代わりに を使用する[^\]]方がよいでしょう。また、使用+は、前の文字クラスの少なくとも 1 つが必要であることを意味し、*許可クラスはオプションにすることができます。必要に応じて調整..

そして使用:

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 に答える
0

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

上記の作品。

http://regexr.com?34543を使用して式を操作します

于 2013-03-15T15:49:12.117 に答える