C# 正则表达式提取单引号或双引号外的字符串

C# 正则表达式提取单引号或双引号外的字符串,c#,asp.net,regex,C#,Asp.net,Regex,我目前正在使用asp.net和C#构建一个网页。解析用户提供的字符串时遇到问题。例如,用户提供了下面的字符串,我需要提取单引号或双引号之外的单词。有人能帮我解决这个问题吗?提前感谢您的帮助 "we run" live "experiments" inside and outside 'a lab' 使用正则表达式的预期结果是: live inside and outside 或 这就行了。组为“unquote”的所有匹配项都符合您的要求: (?<unquote>[^"'\s

我目前正在使用asp.net和C#构建一个网页。解析用户提供的字符串时遇到问题。例如,用户提供了下面的字符串,我需要提取单引号或双引号之外的单词。有人能帮我解决这个问题吗?提前感谢您的帮助

"we run" live "experiments" inside and outside 'a lab'
使用正则表达式的预期结果是:

live

inside

and

outside


这就行了。组为“unquote”的所有匹配项都符合您的要求:

(?<unquote>[^"'\s]+)|(?:["][^"]+?["])|(?:['][^']+?['])
祝你的现场实验好运。

这允许吗:
“现场”
var parts = Regex.Split(input, @"[""'].+?[""']")
            .SelectMany(x => x.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries))
            .ToList();
(?<unquote>[^"'\s]+)|(?:["][^"]+?["])|(?:['][^']+?['])
 var matches = Regex.Matches( @"""we run"" live ""experiments"" inside and outside 'a lab'", @"(?<unquote>[^""'\s]+)|(?:[""][^""]+?[""])|(?:['][^']+?['])" );
 foreach( Match match in matches )
 {
     if( match.Groups["unquote"].Success )
     {
         Console.WriteLine( match.Groups["unquote"].Value.Trim() );
     }
 }
(?<unquote>(?>[^"\s](?<!\s[']))+)|(?:["][^"]+?["])|(?:['][^']+?['])