私が人々が何度も何度も作っているのを見かける1つの間違いは、正規表現でXMLまたはHTMLを解析しようとすることです。XMLとHTMLの解析が難しい理由のいくつかを以下に示します。
人々はファイルを一連の行として扱いたいと思っていますが、これは有効です:
<tag
attr="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>
他に知っている落とし穴はありますか?