正则表达式 - 获取引号中的字符串忽略转义的引号和评论
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,但符合自动机理论和形式语言精神的正则表达式)。
// 注释需要在它自己的传递中被过滤掉或替换为无害的内容。
\" 转义需要类似的处理。
然后你可以用一些正则表达式来匹配化解后的内容。
我的正则表达式需要帮助。我使用 C#。 我需要一个匹配引号内所有字符串的正则表达式,但我需要忽略字符串中的转义引号和注释中的字符串。
// "Hello Guys" -> 忽略字符串
SayHello("你好我\"need\"我们的帮助"); -> 匹配整个字符串。
我目前使用的正则表达式是这样的:Demo regex
如果你在用字符串注释之前确切地知道字符的长度,我们可以使用负向回顾。因为负面回顾不能使用量词。东西 like this :
(?<!\/\/.)".*?[^\]"
或者这样做。删除所有使用 //
和此正则表达式
\/\/.*
然后使用它来获取所有字符串
".*?[^\]"
Ecluding stuff(处理补码)不是正则表达式擅长的(不算一些more or less exotic extensions,但符合自动机理论和形式语言精神的正则表达式)。
// 注释需要在它自己的传递中被过滤掉或替换为无害的内容。
\" 转义需要类似的处理。
然后你可以用一些正则表达式来匹配化解后的内容。