Mar*_*nBE 5 .net c# regex escaping verbatim-string
我正在尝试从rc文件中提取信息.在这些文件中,"字符串中的-chars通过将它们加倍("")来转义为类似于c#逐字字符串.是否可以提取字符串?
例如,如果我有以下字符串"this is a""test"""我想获得这是一个""测试"".它也必须是非贪婪的(非常重要).
我试过使用以下正则表达式;
"(?<text>[^""]*(""(.|""|[^"])*)*)"
Run Code Online (Sandbox Code Playgroud)
然而,表现很糟糕.我基于这里的解释:http://ad.hominem.org/log/2005/05/quoted_strings.php
有没有人有任何想法使用正则表达式处理这个?
你有一些嵌套的重复量词.这对于表现来说可能是灾难性的.
尝试这样的事情:
(?<=")(?:[^"]|"")*(?=")
Run Code Online (Sandbox Code Playgroud)
现在只能一次消耗两个引号...或非引号字符.lookbehind和lookahead声明,实际匹配之前和之后是引号.
这也让你不得不捕获任何东西.您想要的结果将只是您想要的完整字符串(没有外部引号).
我并不断言外部报价不会加倍.因为如果它们是,那么无论如何也无法将它们与空字符串区分开来.
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |