我需要使用文字转义所有单引号字符串,并且我使用以下正则表达式:
'[^']*'
它运行正常,除非我在字符串中转义了必须自行替换的单引号。例如,对于以下字符串:
[COMPUTE:{IIF([Client Name] LIKE '%Happy%', 'Happy\'s', 'Other\'s Jr.')}]
我有这些比赛:
%Happy%
Happy\
,
s Jr.
我可以将\'
替换为其他一些字符序列(例如internal_value
)而不是执行字符串替换,但如果我可以使用正则表达式执行此操作会更清楚代替。
答案 0 :(得分:1)
答案 1 :(得分:1)
你只需要背后的负面看法。基本上只是对任何.*?
使用惰性匹配,那么你可以在结束单引号之前为反斜杠(?<!\\)
添加负面看法。
var reg = new Regex(@"'.*?(?<!\\)'");
foreach(Match m in reg.Matches(@"[COMPUTE:{IIF([Client Name] LIKE '%Happy%', 'Happy\'s', 'Other\'s Jr.')}]"))
Console.WriteLine(m);
输出
&#39;%快乐%&#39;
&#39;快乐\&#39; S&#39;
&#39;其他小的&#39;