使用非ASCII注释在C ++代码中查找非ASCII字符的出现

时间:2012-05-23 20:54:56

标签: c++ regex

我的评论和字符串中包含西里尔字符的源代码。 MSVC允许标识符中的西里尔字符。如何找到忽略所有注释和字符串的所有西​​里尔字符?我想在不使用gcc或脚本的情况下完成此操作,完美地使用简单的正则表达式搜索。找到评论/*.*?*/并不难,但是如何找到不在评论中的内容而不是ASCII字符集?

1 个答案:

答案 0 :(得分:0)

让我们假设所有注释都表现得像'//' - 即使是'/ * comment * /' - 在某种意义上说,一旦评论开始,你就不会有更多的代码同一行。尝试通过以下方式管理源文件:

perl -lne 'print $1 if m{^([^/]+)(?:/[/*])?}'

除了评论之外,这将为您提供一切。

剩下的问题是字符集的功能。如果是Windows-1251,您可以查找这样的模式:'[^\x00-\x7f]+'