我做了嘗試從以下字符串獲得服務器名正則表達式模式:如果可能,使用'?'時,正則表達式總是匹配0量詞?
/SERVER "\"TEST_SERVER\""
有時引號和反斜槓被省略,所以該字符串只是看起來像:
/SERVER TEST_SERVER
在這兩種情況下,我只想匹配TEST_SERVER
。 我的模式是這樣的:
(?<=/SERVER ("\\")?)\S+(?=(\\"")?)
但這只是匹配整個字符串"\"TEST_SERVER\""
時,有引號和反斜槓它。我在這裏做錯了什麼?
我在C#中這樣做,這是我的代碼:
string input2 = "/SERVER \"\\\"TEST_SERV\\\"\"";
string pattern = @"(?<=/SERVER (""\\"")?)\S+(?=(\\"""")?)";
Console.WriteLine("pattern=" + pattern);
Console.WriteLine("input=" + input2);
Regex regEx = new Regex(pattern);
MatchCollection matches = regEx.Matches(input2);
foreach (var match in matches)
{
Console.WriteLine(match.ToString());
}
Console.ReadKey();
郎,你運行的? – 2014-08-28 11:24:46
我正在使用C#,我已經包含了我正在使用的代碼。 – 2014-08-28 11:25:48