我需要一个Perl正则表达式来匹配字符串。我假设仅用双引号引起来的字符串,“\”是文字引号,而不是字符串的结尾,并且“\”是文字反斜杠字符,不应转义引号字符。如果不清楚,则一些例子:
"\"" # string is 1 character long, contains dobule quote
"\\" # string is 1 character long, contains backslash
"\\\"" # string is 2 characters long, contains backslash and double quote
"\\\\" # string is 2 characters long, contains two backslashes
我需要一个可以将所有4种可能性以及这些可能性的所有其他简单变体识别为有效字符串的正则表达式。我现在所拥有的是:
/".*[^\\]"/
但这是不对的-除了第一个以外,它不匹配其他任何一个。谁能在正确的方向上 push 我前进?
最佳答案
这个怎么样?
/"([^\\"]|\\\\|\\")*"/
匹配零个或多个不是斜杠或引号的字符,或者两个斜杠或一个斜杠再加上一个引号
关于regex - 如何将双引号字符串与转义的双引号字符匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/481282/