asp.net 正則表達式的應(yīng)用
1. 平衡組/遞歸匹配
(?'group') 將名為group對應(yīng)的內(nèi)容,壓棧計數(shù);
(?'-group') 將名為group的對應(yīng)的內(nèi)容, 出棧計數(shù)
(?!) 零寬負(fù)向先行斷言,由于沒有后綴表達式,試圖匹配總是失敗
正則樣例:
,{0,1}"5":\[[^\[\]]*(((?'Open'\[)[^\[\]]*)+((?'-Open'\])[^\[\]]*)+)*(?(Open)(?!))\],{0,1}
測試數(shù)據(jù):
{"0":["0","0-1","0-2"],"1":["1","1-1","1-2"],"2":["2","2-1","2-2"],"3":["3","3-1","3-2"],"4":["4","4-1","4-2"],"5":["5","5-1","5-2"]}
比對結(jié)果:,"1":["1","1-1","1-2"],
評語:這個寫的很不錯??梢赃_到取出最近的一個]的效果
2. 零寬斷言
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
正則樣例:
(?<=<(\w+)>).*(?=<\/\1>)
測試數(shù)據(jù):
<li><a href="#updatelog">更新紀(jì)錄</a></li>
比對結(jié)果:<a href="#updatelog">更新紀(jì)錄</a>
評語:這個寫的很不錯。可以取開始取結(jié)束,不過不能在<a>....</a>中再出現(xiàn)<a>...</a>的情況,還好HMTL里不讓<a>中再出現(xiàn)<a>。如果像DIV這樣的,就得用下面的樣子寫了。
<[^<>]*(((?'Open'<)[^<>]*)+((?'-Open'>)[^<>]*)+)*(?(Open)(?!))>
<div class="note">aaa<div>其它可用的測試工具:</div>bbbb</div><div><a href="www.*****.com">gogogo</a></div>
相關(guān)文章
JavaScript RegExp 正則表達式對象詳細(xì)說明
RegExp 對象表示正則表達式,它是對字符串執(zhí)行模式匹配的強大工具。2010-12-12