C++ 正则表达式每两个字符拆分一个字符串
我需要处理一些像这样的C++ 正则表达式每两个字符拆分一个字符串,c++,qt,qt4,qt5,C++,Qt,Qt4,Qt5,我需要处理一些像这样的QString“12ab,1a2ab f 12efa”,我想把它转换成QStringList像这样的(“12”,“ab”,“1a”,“2a”,“b”,“f”,“12”,“ef”,“a”) 输出: ("12", "ab", "1a", "2ab", "f", "12efa") 因此,如果regexp能够每两次拆分一次,我可以使用QString::split。如何实现这一点?使用不同的正则表达式,然后使用QRegularExpressionMatchIterator将匹配项添
QString
“12ab,1a2ab f 12efa”,我想把它转换成QStringList
像这样的(“12”,“ab”,“1a”,“2a”,“b”,“f”,“12”,“ef”,“a”)
输出:
("12", "ab", "1a", "2ab", "f", "12efa")
因此,如果regexp能够每两次拆分一次,我可以使用
QString::split
。如何实现这一点?使用不同的正则表达式,然后使用QRegularExpressionMatchIterator
将匹配项添加到QStringList
更容易
([\\w]{1,2}])
正则表达式将匹配并捕获一对连续字符或单个单词字符
查看下面的代码,看看这是否是您所需要的
#include <QString>
#include <QStringList>
#include <QDebug>
#include <QRegularExpression>
int main(void)
{
QString string(" 12 ab, 1a, 2ab f 12efa ");
QRegularExpression re("([\\w]{1,2})");
QRegularExpressionMatchIterator i = re.globalMatch(string);
QStringList list;
while (i.hasNext()) {
QRegularExpressionMatch match = i.next();
QString word = match.captured(1);
list << word;
}
qDebug() << list;
return 0;
}
#包括
#包括
#包括
#包括
内部主(空)
{
QString字符串(“12 ab、1a、2ab f 12efa”);
qregularexpressionre(([\\w]{1,2})”;
QRegularExpressionMatchIterator i=re.globalMatch(字符串);
QStringList表;
while(i.hasNext()){
QRegularExpressionMatch=i.next();
QString word=match.captured(1);
列表
#include <QString>
#include <QStringList>
#include <QDebug>
#include <QRegularExpression>
int main(void)
{
QString string(" 12 ab, 1a, 2ab f 12efa ");
QRegularExpression re("([\\w]{1,2})");
QRegularExpressionMatchIterator i = re.globalMatch(string);
QStringList list;
while (i.hasNext()) {
QRegularExpressionMatch match = i.next();
QString word = match.captured(1);
list << word;
}
qDebug() << list;
return 0;
}