日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Regex 正则零宽断言

發(fā)布時(shí)間:2024/10/12 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Regex 正则零宽断言 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://baike.baidu.com/link?url=sLfovpZmIcS5Uz_tiidXoVtjl30Tu3wARMfhnEcbgEGzsb8g1z7dvtGNXTulu1KDodmiuTAP5ODr_R5D2myeeq

?

零寬斷言

1_1、(?=exp)?? 零寬度正預(yù)測(cè)先行斷言,它斷言自身出現(xiàn)的位置的后面能匹配表達(dá)式exp

1_2、(?<=exp) 零寬度正回顧后發(fā)斷言,它斷言自身出現(xiàn)的位置的前面能匹配表達(dá)式exp

負(fù)向零寬

2_1、(?!exp)零寬度負(fù)預(yù)測(cè)先行斷言,斷言此位置的后面不能匹配表達(dá)式exp

2_2、(?<!exp)零寬度負(fù)回顧后發(fā)斷言來(lái)斷言此位置的前面不能匹配表達(dá)式exp

舉例1

1_1,1_2: (?<=(aa|bb)).+?(?=ing) 匹配以aa或bb開頭,ing結(jié)束之間的字符

aabbingxxing

匹配結(jié)果: 1.bb 2.ingxx

? 第一次從aabbing匹配出bb,當(dāng)前匹配到字符串第四個(gè)位置,剩下的字符串是ingxxing

? 由于(?<=exp)不占寬度,ingxxing前面是bb,連起來(lái)就是bbingxxing,所以匹配出ingxx

?(注: 以上解釋只是個(gè)人根據(jù)結(jié)果推測(cè)出來(lái)的,說(shuō)法可能不一定準(zhǔn)確,但結(jié)果經(jīng)過(guò)測(cè)試是正確的,只是方便理解,

???? aabb1ingxxing 通過(guò)這個(gè)正則匹配出來(lái)的結(jié)果是:bb1

舉例2:

2_1,2_2 : (?<!(a1|b2))\\d{1,}?(?!ing)

a1b23ingxxing a844ing cc66dd只有3被過(guò)濾掉了,3前面是b2后面是ing

匹配結(jié)果: 1,2, 8,4,6,6

?

??????????? Regex titleRegex3 = new Regex("(?<!(a1|b2))\\w{2,}?(?!ing)" );
??????????? String strong3 = "a1b23ingxxinga844ingcc66dd";
??????????? MatchCollection mcs3 = titleRegex3.Matches(strong3);

??????????? for (int i = 0; i < mcs3.Count; i++)
??????????? {
??????????????? Console.WriteLine(i + "---" + mcs3[i].Value);
??????????? }

?????????? 匹配結(jié)果

????????? 0---a1, 1---23i, 2---ng, 3---xxi, 4---ng, 5---a8,

????????? 6---44i, 7---ng, 8---cc, 9---66, 10---dd

遞歸匹配:

  匹配所有div及div中有嵌套的div

??? <div[^>]*>
?? ?? [^<>]*
?? ??? ( (
?? ??? ??? (?'Open'<div[^>]*>)
?? ??? ??? [^<>]*
?? ??? ? )+
?? ??? ? (
?? ??? ??? (?'-Open'</div>)
?? ??? ??? [^<>]*
?? ??? ? )+
?? ??? )*
?? ?? (?(Open)(?!))
?? ?</div>

???? 能匹配出

    <div>aa</div>

?????????? <div>aa <div> bb <div>cc</div></div></div>

????? div中包含其他標(biāo)簽的不能匹配出來(lái),如<div>aa<span>bb</span></div>

?

?

?

 

?

轉(zhuǎn)載于:https://www.cnblogs.com/c2603/p/5033191.html

總結(jié)

以上是生活随笔為你收集整理的Regex 正则零宽断言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。