0

我想将 wxString 中包含任意数量空格的每个子字符串替换为单个字符或字符串 - 例如“。*”(在 c++ 中)。

或者,也许有一种简单的方法可以将每个子字符串转换为单个空格。然后我可以在第二步中使用 wxString::Replace 方法将单个空格更改为其他内容: wxStringInstance.Replace(wxT(" "), wxT(".*"));

因此,例如,如果我的 wxString 包含“Winter\s\s\s\s\s iscoming”,我想将其更改为“Winter.*is.*coming”,而不是“Winter.*.* 。*。*。*来了”。任何人都可以帮助我吗?...我真的很感激,谢谢:)

4

1 回答 1

0

为了解决这个问题,构建一个小状态机,有两种状态,“在空白处”或“在文本上”。然后传递输入(您可能希望以任一状态开始,具体取决于您如何处理前导空格)。当你从“on text”过渡到“on whitespace”时,你发出一个空格,当你“on text”时你发出文本,当你从“on whitespace”过渡到“on whitespace”时,你什么也不发出。

于 2016-10-15T23:09:30.840 回答