到目前为止,我已经考虑了评论并将正则表达式更改为:
(?://(?:\n|[^n])*n)|(?:)|((?:R"([^(\s]{0,16})([^)]*)2")|(?:@"[^"]*?")|(?:"(?:??'|\\|\"|\n|[^"])*?")|(?:'(?:\\|\'|\n|[^'])*?'))它处理Biffens C ++ 11的原始字符串文字(以及C#逐字字符串),并且根据Wiktors的建议进行了更改。
由于逻辑上的差异(并避免无效的反向引用;),将其拆分为分别处理单引号和双引号。
无疑,它更复杂,但与我所见过的几乎不能解决任何 字符串问题 的解决方案相距甚远。并且可以剥离不适用于特定语言的部分。
有一条评论建议 支持 更多的语言。这将使RE(甚至更多)变得复杂且难以管理。不过,它应该相对容易适应。
更新了regex101示例。
到目前为止,感谢大家的投入。并不断提出建议。
问候
编辑: 更新原始字符串-这次我实际上阅读了规范。;)



