QRegExp按大小的最小匹配

QRegExp按大小的最小匹配,regex,qt,qtcore,Regex,Qt,Qtcore,我想要最小的字符串,从字符串开头开始,以“$”开头,以“#”结尾(字符串:$efg#) 我尝试了QRegExp::setMinimal,但它很有帮助,因为它看起来像是从第一个chatrecter开始的: QRegExp rx("\\$\.*#"); rx.setMinimal(true); int i = rx.indexIn("$abcd$efg#"); QString s = rx.cap(0); bool isMinimal= rx.isMinimal(); 结果是: i=0 s=$ab

我想要最小的字符串,从字符串开头开始,以“$”开头,以“#”结尾(字符串:$efg#)

我尝试了QRegExp::setMinimal,但它很有帮助,因为它看起来像是从第一个chatrecter开始的:

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#

您可能需要将正则表达式重新定义为:

QRegExp rx("\\$[^\\$#]*#");
这将匹配最小值$*#,因为它不允许$或#介于两者之间