我試圖提取所有數據的一個字文檔中標題標籤的轉換(通過字).NET正則表達式的HTML標題
的HTML我有以下的正則表達式:
<(?<Class>h[5|6|7|8])>(?<ListIdentifier>.*?)<span style='font:7.0pt "Times New Roman"'>(?: )+.+</span>(?<Text>.*?)(?:</h[5|6|7|8]>)?
和我的原文如下所示
<h5>(1)<span style='font:7.0pt "Times New Roman"'>
</span>The Scheme (planning scheme) has been
prepared in accordance with the <i>asdf </i>(the Act)
as a framework for managing development in a way that advances the purpose of
the Act.</h5>
<h5>(2)<span style='font:7.0pt "Times New Roman"'>
</span>In seeking to achieve this purpose, the planning scheme sets out
the future development in the
planning scheme area over the next 20 years.</h5>
<h5>(3)<span style='font:7.0pt "Times New Roman"'>
</span>While the planning scheme has been prepared with a 20 year horizon, it
will be reviewed periodically in accordance with the Act to ensure that it
responds appropriately to the changes of the community at Local, Regional and State
levels.</h5>
正則表達式但似乎工作就從第一個H5捕獲到最後一個或任何其他H6 | 7 | 8。
我沒有試圖做任何事情複雜在這裏與數據只需要一個簡單的提取,所以我想堅持使用正則表達式,而不是使用一個HTML解析器,這是公平的說我的例子標題格式良好,即。一個hX總是被一個hX而不是一個hY關閉,而標題裏面沒有標題或任何類似的東西。
我想加入?到(結束了嗎?:)將使nongreedy所以它只會匹配的第一個實例,而不是儘可能多的,因爲它可以,我失去了一些東西在這裏對貪婪是如何工作的?
編輯:
正則表達式
<(?<Class>h[5-8])>(?<ListIdentifier>.*?)<span style='font:7.0pt "Times New Roman"'>(?: )+.+?</span>(?<Text>.*?)(?:</h[5-8]>)
似乎也符合
<h6> </h6>
<h6> </h6>
<h6> </h6>
<h6> </h6>
<h5>(1)<span style='font:7.0pt "Times New Roman"'>
</span>Short Title -The planning scheme policy may be cited as PSP No 2. –
Engineering Standards – Road and Drainage Infrastructure.</h5>
所以它包括整個文本,而我想它忽略與NBSP作爲h6s他們沒有這個跨度內他們
你客氣了,先生是一位紳士和學者! – 2012-02-08 23:16:15
怎麼樣從還可選配
somerandomtext,這並不符合
– 2012-02-09 03:55:54您可以編輯您的問題,以顯示其匹配應該不是文本的任何團體停止呢?我在編輯中看到的內容不會像現在這樣匹配。 – 2012-02-09 04:39:33