【问题标题】:How do I seperate Punctuations in a sentence with a space between each phrase and punctuation in C++?如何在 C++ 中的每个短语和标点符号之间用空格分隔句子中的标点符号?
【发布时间】:2010-05-26 05:17:09
【问题描述】:

我想用 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++ 中执行此操作! 例如:应该转换为“现在的问题:他能否表现得更像是强硬的泰迪罗斯福。”必须转换为“现在的问题:他能否表现得更像是强硬的泰迪罗斯福。” 所以像“-”这样的标点符号或例如“。”在“不”。句子中不应有空格,但不依赖于单词或短语的其他标点符号应有空格。

【问题讨论】:

  • 那是sed,不是Perl

标签: c++ regex sed whitespace punctuation


【解决方案1】:

由于您已经知道如何使用正则表达式来处理这个问题,我认为您可以尝试使用 Boost.Regex 来使用 C++ 进行归档。

【讨论】:

  • 你能帮我boost.regex中的什么函数可以做到这一点吗? sed脚本很复杂,我是正则表达式的初学者!
  • 看看boost::regex_replace
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
相关资源
最近更新 更多