正则表达式匹配C ++范围的字符串文字(L“...”)

时间:2013-09-02 10:20:10

标签: c++ regex string-literals

我正在寻找一个正则表达式来匹配C ++源代码中的宽字符串文字,即那些以大写L开头的字符串文字:

L"Hello World!"

一行上可能有多个文字,并且在以下示例中不得与L", "匹配:

"some string literal ending in L", "another string literal"

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

这个正则表达式通过匹配最后的L - 字符串文字(以及之前的所有内容)来部分解决问题:

(^[^"\r\n]*(?:"[^"\r\n]*"[^"\r\n]*)*)L"([^"\r\n]*)"

这允许我反复搜索并替换正则表达式:

\1u"\2"

这对我的任务来说已经足够了(用L替换u - 文字 - 文字。)