如果我有像下面的字符串...什麼是正則表達式來刪除(可選的)前導和尾隨雙引號?移除任何可選空格引號的外面:C#正則表達式:刪除前導和尾隨雙引號(「)
string input = "\"quoted string\"" -> quoted string
string inputWithWhiteSpace = " \"quoted string\" " => quoted string
(用於使用Regex.Replace C#)
如果我有像下面的字符串...什麼是正則表達式來刪除(可選的)前導和尾隨雙引號?移除任何可選空格引號的外面:C#正則表達式:刪除前導和尾隨雙引號(「)
string input = "\"quoted string\"" -> quoted string
string inputWithWhiteSpace = " \"quoted string\" " => quoted string
(用於使用Regex.Replace C#)
替換^\s*"?|"?\s*$
用空字符串
在C#,正則表達式將是:
string input = " \"quoted string\" "l
string pattern = @"^\s*""?|""?\s*$";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, "");
Console.WriteLine(result);
我會用String.Trim方法來代替,但如果你想正則表達式,用這一個:
@"^(\s|")+|(\s|")+$"
除了使用正則表達式,你可以只使用String.Trim()
- 更容易閱讀,理解和維護。
var result = input.Trim('"', ' ', '\t');
我創建了另一種模式的稍微修改版本,對我來說工作得很好。我希望這有助於將正常的命令行參數和作爲單個參數的雙引號字組分開。
String pattern = "(\"[^\"]*\"|[^\"\\s]+)(\\s+|$)";
我自己的使用: //吃第一個參數(因爲它的C#文件名) argsLine = new Regex(「(\」[^ \「] * \」「)[^ \」\\ s] +)。替換(argsLine,「」); 使用類似的正則表達式方法。 :-) – TarmoPikaro 2016-02-08 22:37:23
'@「^ \ s * \」?| \「?\ s * $」'在C#中是不可能的。在逐字字符串中使用''「'而不是'\」'作爲引號。你也不需要創建一個Regex的新實例,只需要使用Regex.Replace。 – 2010-07-19 14:13:16
@Yuriy謝謝,更新 – Amarghosh 2010-07-19 14:14:22