正则表达式中C#字符串的模式是什么?我的意思是某些模式匹配Visual Studio识别为string
这种模式是我尝试过的,但它在所有情况下都不起作用:
"[A-z0-9\\+;"]+"
(当然这不完整,还有更多的字符应该包括在内,但即使在这里它也无法正常工作)
它适用于这样的文字:"kla\"+;s"
但在这种情况下:"a\"b + c"
它只匹配"a\"
。
实际上我有更多的睾丸,但没有一个成功。
首先,我想到了这种模式:".*"
在这样的场景中无法正常工作:"a\"+;b" + "a\"b + c"
实际上不是字符串,而是两个单独的字符串和一个加号操作
答案 0 :(得分:3)
匹配所有双引号块。
@"(?<!\\)"".*?(?<!\\)"""
<强>解释强>
(?<!\\)"
负面后卫,断言匹配"
前面不能有反斜杠。在C#中,double ""
表示单个双引号。另一个"
仅用于逃避目的。因此,这可以确保起始双引号不能是转义双引号。
.*?
非贪婪的模式,非贪婪地匹配所有字符,直到
(?<!\\)"
找到未转义的双引号。