我想使用.Net Regex.Split方法将输入字符串拆分成一个数组。 除非用引号引起来,否则必须在空格上分割。
输入:这是“我的字符串”,有“六个匹配项”
预期产量:
我需要什么模式?我还需要指定任何RegexOptions吗?
无需选项
正则表达式:
\w+|"[\w\s]*"
C#:
Regex regex = new Regex(@"\w+|""[\w\s]*""");
或者,如果您需要排除“”字符,请执行以下操作:
Regex .Matches(input, @"(?<match>\w+)|\""(?<match>[\w\s]*)""") .Cast<Match>() .Select(m => m.Groups["match"].Value) .ToList() .ForEach(s => Console.WriteLine(s));