QRegExp按大小匹配最小

时间:2013-10-17 08:05:10

标签: regex qt qtcore

我希望从字符串的开头(字符串:$ efg#)

开始以'$'开头并以'#'结尾的最小字符串

我尝试了QRegExp :: setMinimal,但它从第一个聊天记录中看起来很有帮助:

QRegExp rx("\\$\.*#");
rx.setMinimal(true);
int i = rx.indexIn("$abcd$efg#");
QString s = rx.cap(0);
bool isMinimal= rx.isMinimal();

结果是: I = 0 S = $ ABCD $#EFG isMinimal = true

虽然我想要的是: I = 5 S = $ EFG#

1 个答案:

答案 0 :(得分:1)

您可能希望将正则表达式重新定义为:

QRegExp rx("\\$[^\\$#]*#");

这将匹配最小$ *#,因为它不允许$或#在

之间