正则表达式匹配中文逗号分隔开

liuandsky 2017-08-16 12:53:47
项目有需要,检查输入字符串,字符串必须是逗号或者其他一个符号间隔开,只能是中文不能包含其他及特殊字符
类似于:
单位一,单位二,单位三
前面后有逗号理论上也允许,这表达式怎么写,试了半天都出不来,在线求助。。。
...全文
1291 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-08-17
  • 打赏
  • 举报
回复
仅供参考:
//凡是?。!后面跟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.测试
//
zwfgdlc 2017-08-17
  • 打赏
  • 举报
回复
要支持UNICODE才行

19,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧