怎么把windows下的正则转移到linux上正常使用?

C++语言 码拜 4年前 (2015-11-27) 125次浏览
测试在windows上正常,在linux上无法正确提取了
解决方案:30分
用的啥库?最好是同一个。
解决方案:30分
仅供参考:

//凡是?。!后面跟1~1000后面跟半角.的,在?。!后面加回车换行。
//in.txt:
//1.测试。2.测试2?3.测试3!4.测试
//四。5.测试。6.测试6?7.测试3!8.测试
//运行该程序将输出重定向到例如out.txt即可将输出保存到文件out.txt中
#include <iostream>
#include <fstream>
#include <string>
#include <regex>
using namespace std;
int main() {
    wifstream wifs("in.txt");
    wifs.imbue(locale("chs"));
    wstring wstr(L""),wln;
    while (wifs) {
        getline(wifs,wln);
        wstr+=wln;
    }
    wifs.close();
    wcout.imbue(locale("chs"));
    wcout << wstr << endl;
    wstring rs = L"([?。!])(\d{1,3}\.)";
    wregex expression(rs);
    wstr = regex_replace(wstr, expression, wstring(L"$1\r\n$2"));
    wcout << wstr << endl;
    return 0;
}
//1.测试。2.测试2?3.测试3!4.测试四。5.测试。6.测试6?7.测试3!8.测试
//1.测试。
//2.测试2?
//3.测试3!
//4.测试四。
//5.测试。
//6.测试6?
//7.测试3!
//8.测试
//

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么把windows下的正则转移到linux上正常使用?
喜欢 (0)
[1034331897@qq.com]
分享 (0)