簡體   English   中英

在C#中閱讀和解析文本文件的最佳方法

[英]Best way to read and parse a text file in C#

我有一個包含HTML代碼的文本文件,我只想使用特定標簽並使用C#保存它們!

我當時想用很少的Regex行來做到這一點,這是最好,最簡單的方法嗎? 還是C#中有一個更簡單的功能可以做到這一點?

使用Regex 可能不是實現此目的的最佳方法,實際上我會說這是您可以想到的眾多“壞”想法之一。

您可能希望使用HTMLAgilityPack進行研究 :它將解析HTML,創建一個可以導航的節點樹,並且無需進行任何“瘋狂”的正則表達式就可以查看您感興趣的標簽。 如果您避免使用正則表達式,將會為您省去很多麻煩,因為在野外發現的HTML可能會很窮,令人討厭和粗暴,盡管通常遠遠不夠短

正則表達式可以工作,但您必須非常小心。 HTML不是一種“常規語言”,因此存在一些自由形式的異常,這些異常可能會使事情變得一團糟。 您還必須小心跨行匹配。 可以做到的。

調查: http : //htmlagilitypack.codeplex.com/

如果HTML格式正確,則可以嘗試使用XML解析器讀取它,然后使用其中的方法。 幸運的是,框架中立即有工具可以執行此操作。 考慮使用LINQ to XML使您的工作盡可能簡單。

否則,如果格式不正確,則可以使用第三方工具來解析它,例如HTML Agility Pack

SO上已詳細介紹了使用正則表達式解析HTML。 共識是不應該這樣做。 閱讀這篇文章,以了解原因:

RegEx匹配XHTML自包含標簽以外的打開標簽

過去,我使用SGML閱讀器將HTML轉換為xml,然后使用xpath / xslt / linq-to-xml進行解析。 這也可能對您有用。

2種選擇:

1)自己循環

2)使用正則表達式可以實現更好的匹配和錯誤。 (將匹配的組與正則表達式匹配),然后可以迭代其中的每個項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM