Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt-使用几种类型的空格作为分隔符拆分QString_C++_Regex_Qt_Split_Qstring - Fatal编程技术网

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

C++ Qt-使用几种类型的空格作为分隔符拆分QString,c++,regex,qt,split,qstring,C++,Regex,Qt,Split,Qstring,我想拆分一个QString。QString中有几个单词,由以下一个或多个(!)符号分隔: 空白 标签 铬 LF 我只想提取单词。基本上,我试图复制Python str.split()函数的行为 我知道我可以使用正则表达式来实现这一点,但它会是什么样子呢?任何其他直接的方法都是受欢迎的。注意,CR、LF和tab已经是空白。如果需要匹配空白,可以使用: \s匹配空白字符() 那么,使用 QStringList list = str.split(QRegExp("\\s+"), QString::

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

  • 空白
  • 标签
  • LF
我只想提取单词。基本上,我试图复制Python str.split()函数的行为

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

注意,CR、LF和tab已经是空白。如果需要匹配空白,可以使用:

\s
匹配空白字符()

那么,使用

QStringList list = str.split(QRegExp("\\s+"), QString::SkipEmptyParts);
如果计划拆分具有特定字符的字符串,请使用

[…]
字符集可以用方括号表示,类似于完整的正则表达式。在character类内部,与外部一样,反斜杠没有特殊意义

那么,试试看

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

当需求发生变化时,您可以稍后放大列表。

那么,您尝试过
“\\s+”
了吗?我遇到过这个特殊的regexp,是的。但我不确定它是否涵盖了所有的案例,它似乎已经足够了。尝试
QStringList=str.split(QRegExp(“\\s+”),QString::skipmptyparts)。否则,请尝试
\\W+
\W
匹配非单词字符,并且将在比
\s
更多的情况下拆分)谢谢,我将试一试,看看它是否足以容纳我将运行此操作的数据。