gpt4 book ai didi

c++ - 展望 QregularExpression 中的断言

转载 作者:搜寻专家 更新时间:2023-10-31 02:13:17 25 4
gpt4 key购买 nike

QRegularExpression 是否在其正则表达式引擎中提供先行断言?我已经测试了这个例子,但没有找到匹配的字符串。

QString s = "px1 pt 2px 3em 4px";
QRegularExpression re("\\d(?=px)");
auto match = re.match(s);
qDebug()<< match.lastCapturedIndex();

结果是0。

最佳答案

QRegularExpression使用 PCRE 正则表达式,因此它支持先行和后行,甚至是惰性量词。在您的情况下,只有一个完整的匹配值,没有捕获,因此请使用 match.captured(0) 访问该值。

使用

QRegularExpression re("\\d+(?=px)");
QRegularExpressionMatchIterator i = re.globalMatch("px1 pt 2px 3em 4px");
QStringList words;
while (i.hasNext()) {
QRegularExpressionMatch match = i.next();
QString word = match.captured(0);
words << word;
}
// words contains "2", "4"

\d+(?=px) 模式仅在后跟 px 文字字符序列时匹配 1+ 位数字。

关于c++ - 展望 QregularExpression 中的断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41620665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com