Regex工作在# Regex猪肉,但不是在.net

本文关键字:Regex net 猪肉 工作 | 更新日期: 2023-09-27 18:04:00

我有以下的正则表达式:

/(?<=SOMEMETHOD'(|'G)'s*((['"]).+?(?<!'')'2|'{[^}]+'}|[^,;'"(){}')]+)'s*(?:,|'))/g

我在irc# Regex上测试了它,它可以工作。

!正则表达式(function() {new someemethod(`参数1, parameter2{"json1":0,"json2":14962年,"json3":假的,"json4":"hej"},lastparameter);morecode ();测试STS/(& lt; = SOMEMETHOD (| ' G) ' s *((['"]).+?(?

[Result: 4] [0:-?][1:90-102: '参数1'][2:90-90:'][3:104 - 115:"parameter2"][4:104 - 104:"][5:117 - 169:{"json1":0,"json2":14962年,"json3":假的,"json4":"hej"}][6:171 - 183:lastparameter]

它不能在。net中工作:

        string pattern = @"/(?<=SOMEMETHOD'(|'G)'s*((['""]).+?(?<!'')'2|'{[^}]+'}|[^,;'""(){}')]+)'s*(?:,|'))/g";
        var t = Regex.Match(e.Document, pattern);

我不知道是不是某些字符的转义问题

Regex工作在# Regex猪肉,但不是在.net

模式不应该在开头包含/,在结尾包含/g。这是用于声明文字正则表达式对象的语法。

string pattern = @"(?<=SOMEMETHOD'(|'G)'s*((['""]).+?(?<!'')'2|'{[^}]+'}|[^,;'""(){}')]+)'s*(?:,|'))";