#include <QRegExp>
#include <QDebug>
int main()
{
QRegExp rx("(.*)[^\\]\\[\\d+\\]$");
qDebug() << rx.indexIn("AA[45]");
qDebug() << rx.cap(1);
}
我需要编写QRegExp以匹配'['符号前面的名称,如果它没有'\'前面。在这种情况下,它应该打印“AA”,但它什么都不打印。在[^ \\]部分中添加2个斜杠后,它仅匹配"AA\\[45]"
的“A”,但对于这种情况,我需要它来匹配任何内容。
#include <QRegExp>
#include <QDebug>
int main()
{
QRegExp rx("(.*)[^\\\\]\\[\\d+\\]$");
qDebug() << rx.indexIn("AA\[45]");
qDebug() << rx.cap(1);
}
此案例不应与任何内容匹配,但会打印“A”。
答案 0 :(得分:0)
#include <QRegExp>
#include <QDebug>
int main()
{
QRegExp rx("(.*[^\\\\])\\[\\d+\\]$");
qDebug() << rx.indexIn("eeeA\\[45]");
qDebug() << rx.indexIn("eeeA[45]");
}
我在你的帮助下得到它。这就是我需要的。
答案 1 :(得分:0)
此正则表达式仅在您的字母后面跟[
\
时才匹配
([^\\]*(?!^\\))\[\d+\]$