Qt正则表达式的贪婪模式 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    使用了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="" />

   

最新文章