asp.net Regex的應用

來源:互聯網
上載者:User

1. 平衡組/遞迴匹配
(?'group') 將名為group對應的內容,壓棧計數;
(?'-group') 將名為group的對應的內容, 出棧計數
(?!) 零寬負向先行斷言,由於沒有尾碼運算式,試圖匹配總是失敗
正則範例:
,{0,1}"5":\[[^\[\]]*(((?'Open'\[)[^\[\]]*)+((?'-Open'\])[^\[\]]*)+)*(?(Open)(?!))\],{0,1}
測試資料:
{"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"]}
比對結果:,"1":["1","1-1","1-2"],

評語:這個寫的很不錯。可以達到取出最近的一個]的效果

2. 零寬斷言
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp後面的位置
(?!exp) 匹配後面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
正則範例:
(?<=<(\w+)>).*(?=<\/\1>)

測試資料:
<li><a href="#updatelog">更新紀錄</a></li>

比對結果:<a href="#updatelog">更新紀錄</a>

評語:這個寫的很不錯。可以取開始取結束,不過不能在<a>....</a>中再出現<a>...</a>的情況,還好HMTL裡不讓<a>中再出現<a>。如果像DIV這樣的,就得用下面的樣子寫了。

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

<div class="note">aaa<div>其它可用的測試載入器:</div>bbbb</div><div><a href="www.*****.com">gogogo</a></div>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.