RegEx忽略.net中引用字符串内的文本

Ram*_*Ram 5 .net regex quotes

如何忽略.NET中带引号的字符串中的文本.我有以下字符串

This is test, 'this is test inside quote'
Run Code Online (Sandbox Code Playgroud)

说我正在搜索test并替换它应该只替换test引号内不存在.

This is, 'this is test inside quote'. 
Run Code Online (Sandbox Code Playgroud)

我使用它来匹配引用文本中的文本.

(["']).*?\1
Run Code Online (Sandbox Code Playgroud)

svi*_*ick 5

我会用Regex.Replace().正则表达式将匹配未引用的字符串,后跟带引号的字符串,匹配评估程序将替换test非引用的部分.像这样的东西:

Regex.Replace("This is test, 'this is test inside quote' test",
              @"(.*?)((?<quote>[""']).*?\k<quote>|$)",
              m => m.Groups[1].Value.Replace("test", "") + m.Groups[2].Value)
Run Code Online (Sandbox Code Playgroud)

组1是未引用的部分,组2是引用的部分(或字符串的结尾).以上结果是:

This is , 'this is test inside quote' 
Run Code Online (Sandbox Code Playgroud)


hun*_*ind -1

我可以在正则表达式中看到一个双引号和一个单引号。确保两者都是单引号。也许您也需要转义单引号。 ([\'\']).*?\1