2

角かっこで囲まれている場合と囲まれていない場合がある文字列があります

string a = "[Hello world]";
string b = "Hello world";

次の正規表現は、文字列に [] が含まれている限り true を返しますが、それが目的ではありません :)

var c = "hello[ ]world";
var isCommandArray = Regex.IsMatch(c, @"\[.*?\]"); // returns true

ありがとう

4

3 に答える 3

7

他のブラケットが真ん中にあることを許可する場合は、使用する必要はありませんRegex:

bool isBracketed = s.StartsWith("[") && s.EndsWith("]");

途中で他のブラケットを許可しない場合でも、これを行うことができます。

bool isBracketed = s.LastIndexOf("[") == 0 && s.IndexOf("]") == s.Length - 1;
于 2013-01-01T16:16:54.903 に答える
2

^パターンの開始とパターンの終了に使用し$ます。

var isCommandArray = Regex.IsMatch(c, @"^\[.*?\]$")
于 2013-01-01T16:06:46.437 に答える
1

文字列の最初と最後に一致するように正規表現をコーディングする必要があります。

^\[.*?\]$

^は文字列の開始を$示し、終了を示します。

中括弧の周りに空白を許可したい場合は、次を追加します\s

^\s*\[.*?\]\s*$
于 2013-01-01T16:09:16.933 に答える