我正在寻找拆分QString。 QString中有几个单词,由以下符号中的一个或多个(!)分隔:
我只想提取单词。基本上,我正在尝试复制Python str.split()函数的行为。
我知道我可以使用正则表达式来实现这一目标,但它会是什么样子?任何其他直接实现这一目标的方法也是受欢迎的。
答案 0 :(得分:7)
请注意,CR,LF和标签 已经是空格。如果您需要匹配空白,则可以依赖shorthand character class \s
:
\s
匹配空白字符(QChar::isSpace()
)。
所以,请使用
QStringList list = str.split(QRegExp("\\s+"), QString::SkipEmptyParts);
如果您打算拆分包含特定字符的字符串,请使用character class。
[...]
字符集可以用方括号表示,类似于完整的正则表达式。在字符类中,像外部一样,反斜杠没有特殊含义。
然后,尝试
QStringList list = str.split(QRegExp("[\r\n\t ]+"), QString::SkipEmptyParts);
您可以在需求更改后稍后放大列表。