亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您能否舉例說明為什么難以用正則表達式解析XML和HTML?

您能否舉例說明為什么難以用正則表達式解析XML和HTML?

您能否舉例說明為什么難以用正則表達式解析XML和HTML?一個錯誤我看到人們做了,并再次試圖解析XML或HTML用正則表達式。以下是解析XML和HTML很難的幾個原因:人們希望將文件視為一系列行,但這是有效的:<tagattr="5"/>人們希望將<或<tag視為標記的開頭,但是這樣的東西存在于野外:<img src="imgtag.gif" alt="<img>" />人們通常希望將起始標記與結束標記匹配,但XML和HTML允許標記包含自身(傳統的正則表達式根本無法處理):<span id="outer"><span id="inner">foo</span></span>人們通常希望匹配文檔的內容(例如著名的“查找給定頁面上的所有電話號碼”問題),但數據可能會被標記(即使在查看時看起來是正常的):<span class="phonenum">(<span class="area code">703</span>)<span class="prefix">348</span>-<span class="linenum">3020</span></span>評論可能包含格式不正確或不完整的標記:<a href="foo">foo</a><!-- FIXME:     <a href=" --><a href="bar">bar</a>你還知道其他什么問題?
查看完整描述

3 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

我寫了一篇關于這個主題的完整博客文章:正則表達式限制

問題的關鍵在于HTML和XML是遞歸結構,需要計數機制才能正確解析。真正的正則表達式無法計數。您必須具有無上下文語法才能計算。

前一段有一點需要注意。某些正則表達式實現現在支持遞歸的想法。但是,一旦開始將recursion添加到正則表達式中,您實際上是在擴展邊界并且應該考慮使用解析器。


查看完整回答
反對 回復 2019-05-23
  • 3 回答
  • 0 關注
  • 905 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號