如何C#正则表达文本之间的“”但保持逃脱\“?

时间:2014-03-03 08:51:40

标签: c# regex

目前,我有正则表达式string regex = "\"[^\"\r\n]*\""(我使用的是C#正则表达式)。 它将以下字符串"TEST ONE" "TEST TWO"与以下内容匹配:

"TEST ONE"

"TEST TWO"

这是正确的。现在我需要继续进行以便转义\“不会中断匹配。例如,像这样:

"ONE \" TWO" "ONE TWO"符合:

"ONE \" TWO"

"ONE TWO"

我该怎么做?

2 个答案:

答案 0 :(得分:1)

.net支持lookarounds ..所以你可以做这样的事情

(?<!\\)".*?(?<!\\)"

试试here

答案 1 :(得分:0)

你可以使用更像这样的语法:

string regex = @"""(?:\\.|[^""\r\n\\])*"""

当您使用字符串文字指示符@时,您需要使用另一个"转义"

然后,要匹配转义字符(使用反斜杠进行转义),您可以尝试首先将转义字符与\\.匹配,为此,您将其放入一个非捕获组| 1}}(或)运算符。