日期:2014-05-18  浏览次数:20682 次

vs2008使用正则替换
比如以下文本:
char szAccept[] = "Accept: */*";
char szReferer[] = "Referer: http://mail.sina.com.cn/\r\n";

将之替换成:
char szAccept[] = _T("Accept: */*");
char szReferer[] = _T("Referer: http://mail.sina.com.cn/\r\n");

使用正则查找内容:".*?"
替换为:_T(".*?")
弹出"未找到以下内容".*?""



------解决方案--------------------
是给加上UNICODE标记是吧。不用那么麻烦,字符串前面写个L就可以了。
C# code
        private void TestRegex19()
        {
            string yourStr = @"char szAccept[] = ""Accept: */*"";
char szReferer[] = ""Referer: http://mail.sina.com.cn/\r\n"";
";
            string result = Regex.Replace(yourStr, @"(?isn)(?<front>char\s*(?!\d)\w+\w*?(\[\]|\*) *= *)(?<text>"".*?"")(?<end> *;)", "$1L$2$3");
            MessageBox.Show(result);
        }