c++ - 如何在 C++ 中用每个短语和标点符号之间的空格分隔句子中的标点符号?

标签 c++ regex sed whitespace punctuation

我想用 C++ 编写一个程序,获取一个句子并在每个单词和标点符号之间插入一个空格!在 sed 脚本中,这是用这个表达式完成的:

sed -e "s/,\([^0-9]\)/ , \1/g" -e "s/\.\([^0-9]\)/ . \1/g" -e 's/\.[ ]*$/ ./g' -e "s/\'/ \' /g" -e 's/?/ ?/g' -e 's/\`\`/ `` /g' -e "s/\' \'/''/g" -e 's/(/ ( /g' -e 's/)/ ) /g' -e 's/ \. \([^$]\)/. \1/g' -e "s/\' s/\'s/g" -e "s/\"\([^\"]*\)\"/\" \1 \"/g" $1 | sed -e "s/\"\([^\"]*\)\"/\`\`\1''/g" 

但我不知道我应该如何在 Windows 中使用 C++ 执行此操作! 例如:应该转换为“现在的问题:他能否表现得更像强硬的泰迪·罗斯福”。必须转换为“现在的问题:他能否表现得更像强硬的泰迪·罗斯福”。 所以标点符号如“-”或例如“。”在“没有”句子中不应该有空格,但其他不依赖于单词或短语的标点符号应该有空格。

最佳答案

既然您已经知道如何使用正则表达式处理这个问题,我认为您可以尝试使用 Boost.Regex为了用 C++ 归档相同的东西。

关于c++ - 如何在 C++ 中用每个短语和标点符号之间的空格分隔句子中的标点符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2910219/

上一篇:C++操纵器

下一篇:c++ - 反转链表?

相关文章:

bash - 捕获第 n 场 bash

bash - 如何使用 sed 从文件中打印行,其中行号存储为变量

c++ - 程序仅在发布版本时崩溃——如何调试?

regex - 为什么正则表达式引擎允许/自动尝试在输入字符串的末尾进行匹配?

c++ - 如何提高大整数的乘法效率?

java - 使用 apache poi 的 PatternSyntaxException

regex - 如何在 Vim 中用每行开头从 1 开始的连续数字替换子匹配

sed - 附加到文本文件 sed 中一行的中间

c++ - *** 检测到堆栈粉碎 *** 使用 FEAST 返回函数时出错

c++ - 在没有visual studio的电脑上运行opencv dll