一直試圖找出正則表達式中的「[」和「]」的轉義字符。我有串以下模式,該字符串是實際的字符串:正則表達式在C#問題
[somestring] [anotherstring]
因此字符串將啓動「[」之後somestring隨後用「]」,後通過「[」,後面跟着其他字符串,然後是「]」。
任何人都可以請建議?
一直試圖找出正則表達式中的「[」和「]」的轉義字符。我有串以下模式,該字符串是實際的字符串:正則表達式在C#問題
[somestring] [anotherstring]
因此字符串將啓動「[」之後somestring隨後用「]」,後通過「[」,後面跟着其他字符串,然後是「]」。
任何人都可以請建議?
如果是隻有1級,你想解析出字符串,那麼你不需要正則表達式:
string composition = "[somestring][anotherstring]";
string[] stringSeparators = new string[] {"][", "[", "]"};
string[] s = composition.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
如果你想匹配的確切模式:
Regex r = new Regex(@"^(\[[^\[\]]+\]){2}$");
編輯 - 它有語法突出顯示的代碼的評論者回答: 對於解析出使用組串正則表達式的方式,你可以使用:
foreach (Match match in Regex.Matches(composition, @"\[([^\[\]]+)\]"))
Console.WriteLine(match.Groups[1].Value);
我如何提取「[]」中的字符串?所以它會拉出一些字符串和其他字符串。 – user384080 2010-07-22 05:32:46
@ ronald-yoh:使用分組操作符。 – leppie 2010-07-22 05:50:43
我是相當新的正則表達式..你可以請給我一個例子嗎? – user384080 2010-07-22 06:43:32
請注意,您需要使用'「\\」'或'@「\」'來避免字符串中的反斜槓(在正則表達式「看到」它之前)。 – Kobi 2010-07-22 05:15:19
@"(\[[^\]]+\]){2}"
我想(我的頭現在有點疼)。
注意,這將匹配[
和]
之間的任何內容。
注意:如果字符串是[[s [omest [ring] [anothertring]],它也會匹配成功,你可能不想要。 – 2010-07-22 05:27:52
@Jaroslav Jandek:非常好的點:) – leppie 2010-07-22 05:49:51
我在編寫正則表達式時發現了非常有用的免費Rad Software Regular Expression Designer。它包括一個內置的參考和檢查您的正則表達式的能力: http://www.radsoftware.com.au/regexdesigner/ – Alex 2010-07-22 05:29:12
順便說一句,這將是有益的,如果你澄清是否你想要一個正則表達式來驗證/匹配字符串或提取/捕獲字符串中的兩個元素。 – Alex 2010-07-22 05:38:01