Qt - 使用几种类型的空格作为分隔符来拆分QString

use*_*186 9 c++ regex qstring qt split

我正在寻找拆分QString.QString中有几个单词,由以下符号中的一个或多个(!)分隔:

  • 空白
  • 标签
  • CR
  • 如果

我只想提取单词.基本上,我试图复制Python str.split()函数的行为.

我知道我可以使用正则表达式来实现这一点,但它会是什么样子?任何其他直接实现这一目标的方法也是受欢迎的.

Wik*_*żew 9

需要注意的是CR,LF和标签已经空白.如果你需要匹配一个空格,你可以依赖一个速记字符类\s:

\s 匹配空白字符(QChar::isSpace()).

所以,然后使用

QStringList list = str.split(QRegExp("\\s+"), QString::SkipEmptyParts);
Run Code Online (Sandbox Code Playgroud)

如果您打算拆分具有特定字符的字符串,请使用字符类.

[...] 字符集可以用方括号表示,类似于完整的正则表达式.在字符类中,像外部一样,反斜杠没有特殊含义.

然后,试试

QStringList list = str.split(QRegExp("[\r\n\t ]+"), QString::SkipEmptyParts);
Run Code Online (Sandbox Code Playgroud)

您可以在需求更改后稍后放大列表.