我滴天呐我去 2024-01-10 10:04 采纳率: 30%
浏览 7

去除字符串中的中文标点符号

在Linux环境下使用C/C++,有什么算法或者开源库能够快速去除字符串中的中文标点符号,字符串是那种英文,中文,数字混杂的那种

  • 写回答

2条回答 默认 最新

  • 赵4老师 2024-01-10 10:53
    关注

    使用wregex,仅供参考:

    //凡是?。!后面跟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.测试
    //
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月10日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器