使用了2个正则表达式库,分别是QRegExp、pcre和pcre++,
Qt正则表达式的贪婪模式
。正则表达式的写法一般都是通用的,但对于贪婪匹配,不同的正则库有些不同。在pcre中,非贪婪模式是由'?'来指定的,但在QRegExp中,存在'?',为不合法的正则表达式,在QRegExp中,要使用setMinimal函数来指定贪婪算法。setMinimal函数的意思是设置最小匹配,也就是非贪婪。
1.例子:
从html代码中抓取隐藏域
内容:
[html]
正则表达式:
ps:如果要在代码里面写,'"'要用斜杠转义,变成:
匹配结果:
(1).要最小化匹配->非贪婪
setMinimal(true)
匹配结果:
[html]
" name="account_name" id="txtUserNameqiye" value=""
" name="domain" id="txtUserDomainqiye" value=""
" name="password" id="txtPasswordqiye" value=""
" id="qiyeall_secure" name="all_secure" value="1"
" id="test" name="test" value="1"
" name="account_name" id="txtUserNameqiye" value=""
" name="domain" id="txtUserDomainqiye" value=""
" name="password" id="txtPasswordqiye" value=""
" id="qiyeall_secure" name="all_secure" value="1"
" id="test" name="test" value="1"
(2).要最大化匹配->贪婪
setMinimal(false)
匹配结果:
[html]
" name="account_name" id="txtUserNameqiye" value="" />
" name="account_name" id="txtUserNameqiye" value="" />