如何使用QT RegExp从字符串中提取子字符串列表

时间:2013-08-22 07:56:59

标签: c++ regex qt c++11 qt5

如何使用QT RegExp从字符串中提取子字符串列表,例如,如果我有此输入字符串"qjkfsjkdfn 54df#Sub1#sdkf ++sdf #Sub2#q qfsdf445#Sub3#sdf" 我希望使用"Sub1" RegExp获取包含"Sub2""Sub3""(#.+#)"的列表。

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码:

QRegExp rx("#([^#]+)#"); // create the regular expression
string text = "qjkfsjkdfn 54df#Sub1#sdkf ++sdf #Sub2#q qfsdf445#Sub3#sdf";
int pos = 0;
while ( (pos = rx.search(text, pos)) != -1 ) // while there is a matching substring
{
     cout << rx.cap(1); // output the text captured in group 1
}