Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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正则表达式_C++_Regex_Qt - Fatal编程技术网

C++ 用于在[]之间拆分字符串的Qt正则表达式

C++ 用于在[]之间拆分字符串的Qt正则表达式,c++,regex,qt,C++,Regex,Qt,我想拆分一个字符串[a][b1][c2][d254][e0] 分为[A],[b1],[c2],[d254]和[e0] 我已经在线测试了表达式\[(.**?\],该表达式工作正常,但我无法使用QRegExp拆分它。代码如下所示 QRegExp rx("\[(.*?)\]"); //RegEx for [----] QString str("[A ] [B 1] [C 2] [D 254] [E 0] "); QStringList query = str.split(rx)

我想拆分一个字符串
[a][b1][c2][d254][e0]

分为
[A]
[b1]
[c2]
[d254]
[e0]

我已经在线测试了表达式
\[(.**?\]
,该表达式工作正常,但我无法使用
QRegExp
拆分它。代码如下所示

    QRegExp rx("\[(.*?)\]"); //RegEx for [----]
    QString str("[A ] [B 1] [C 2] [D 254] [E 0] ");
    QStringList query = str.split(rx);
    for( auto q : query ) {
        qDebug() << q;
    }
QRegExp rx(“\[(.*?\])”//[---]的正则表达式
QString str(“[A][b1][c2][d254][e0]”);
QStringList query=str.split(rx);
for(自动问:查询){

qDebug()
“\\[\124;\\]”
可以拆分所附的
[项目]
正确拆分此字符串所需的是“lookaheads”“lookbehinds”

QString s("[A ] [B 1] [C 2] [D 254] [E 0]");
QStringList sl = s.split(QRegularExpression("(?<=\\])[ ](?=\\[)"));

使用正则表达式进行匹配,而不是拆分。如何使用此匹配表达式进行拆分?
“\\[\\\\\]”
使用此拆分,但不会捕获分隔符,
空格也会被捕获。
“\[\\\\]”
为我工作,谢谢。虽然我不能包含分隔符。@Tushar,如果他的任何条目包含方括号,则这种类型的正则表达式可能会有问题。在这种情况下,这可能没问题,因为他的数据看起来严格是:
[字母编号]
。但是如果是
[字符串编号]
,这样的条目:
[foo\]37]
会引起问题。谢谢您的解释。@akiva QStringList sl = s.split(QRegularExpression("(?<=" + QRegularExpression::escape("]") + ")[ ](?=" + QRegularExpression::escape("[") + ")"));