正则表达式 - 获取引号中的字符串忽略转义的引号和评论

Regex - Get strings in Quotes ignore escaped Quotes and Comments

我的正则表达式需要帮助。我使用 C#。 我需要一个匹配引号内所有字符串的正则表达式,但我需要忽略字符串中的转义引号和注释中的字符串。

// "Hello Guys" -> 忽略字符串

SayHello("你好我\"need\"我们的帮助"); -> 匹配整个字符串。

我目前使用的正则表达式是这样的:Demo regex

如果你在用字符串注释之前确切地知道字符的长度,我们可以使用负向回顾。因为负面回顾不能使用量词。东西 like this :

(?<!\/\/.)".*?[^\]"

或者这样做。删除所有使用 // 和此正则表达式

的评论
\/\/.*

然后使用它来获取所有字符串

".*?[^\]"

Ecluding stuff(处理补码)不是正则表达式擅长的(不算一些more or less exotic extensions,但符合自动机理论和形式语言精神的正则表达式)。

// 注释需要在它自己的传递中被过滤掉或替换为无害的内容。

\" 转义需要类似的处理。

然后你可以用一些正则表达式来匹配化解后的内容。