【发布时间】:2020-11-26 19:09:15
【问题描述】:
编辑:有人可以添加正则表达式解决方案吗?我正在查看以下正则表达式:
[\(\)!*-+^]
我有一个函数,它根据我在正文中声明的特殊字符从文本中提取标记。
函数存在2个问题:
1) 不打印特殊字符。
2)两个特殊字符相邻时输出错误
所以我做了一个改变,解决了问题 1(正如我从一些测试的结果中看到的那样) 但是没有修复数字 2,有什么帮助吗?
注意:我使用的是 C++11 标准,不打算使用 boost
示例: 给定:a+(b*c) 我期待:a,+,(,b,*,c,)
给定:a+b 我期待:a,+,b
给定:ab+ 我期待:ab,+
鉴于:a b+ 我期待:a b,+
【问题讨论】:
-
您能否展示一些示例输入和您的预期输出?
-
这是因为你在执行last_pos = pos + 1时跳过了特殊字符。你可以找出特殊字符str[pos]
-
@CoryKramer 更新:我添加了一些边缘案例,请刷新
-
@armagedescu 如果我不做 last_pos=pos+1 代码将不间断地运行
-
@CoryKramer 有什么帮助吗?