我有用户输入的字符串,并希望标记它们。为此,我想使用正则表达式,现在有一个特殊情况的问题。 的示例串是正则表达式标记问题
Test + "Hello" + "Good\"more" + "Escape\"This\"Test"
或C#相当于
@"Test + ""Hello"" + ""Good\""more"" + ""Escape\""This\""Test"""
我能够匹配Test
和+
令牌,但不包含那些的。“我用的是”让用户指定这是字面上的字符串而不是特殊的标记。现在,如果用户想使用“字符串中的字符,我认为这让他以\逃避它的
所以规则是:给我的一切两者之间””,但在前面的字符最后的“不能是一个\”。
我期望的结果是:"Hello"
"Good\"more"
"Escape\"This\"Test"
我需要的“”字是在最后一场比赛,所以我知道这是一个字符串。
我现在有这给了我,结果如下正则表达式@"""([\w]*)(?<!\\"")"""
:"Hello"
"more"
所以后面看看是不是工作,我希望它是。有谁知道正确的方式来获得像我想要的字符串?
还有一个级别:\通常可以用另一个\\ \ ...来转义...所以'\\'''''''' – xanatos
Xanatos是对的,否则,['“[^”\\] * (?:\\ [^ “\\] *)*”'](http://regexstorm.net/tester?p=%22%5b%5e%22%5c%5c%5d*(%3F%图3a%5C%5c所示。%图5b%5E%22%5C%5C%5D *)*%22&I =测试+%2B +%22Hello%22 +%2B +%22Good%5C%22more%22 +%2B +%22%图5c% 5c%5c%22Escape%5c%22This%5c%22Test%22&o = ixncsm)应该为你工作(C#['var rx =“\”[^ \“\\\\] *(?:\\\\。 [^ \ “\\\\] *)* \”“'](http://ideone.com/dTq91U))。 –