Qt-拆分一个QString,使用几种类型的空白作为分隔符

Qt - splitting a QString, using several types of whitespace as separators

本文关键字:类型 几种 空白 分隔符 拆分 一个 QString Qt-      更新时间:2023-10-16

我想拆分一个QString。QString中有几个单词,由以下一个或多个(!)符号分隔:

  • 空白
  • 选项卡
  • CR
  • LF

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

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

请注意,CR、LF和tab已经是空格。如果需要匹配空白,可以使用缩写字符类s:

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

所以,使用

QStringList list = str.split(QRegExp("\s+"), QString::SkipEmptyParts);

如果计划用特定字符拆分字符串,请使用字符类

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

然后,尝试

QStringList list = str.split(QRegExp("[rnt ]+"), QString::SkipEmptyParts);

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