2009-01-09 119 views
0

我需要提取``特定選擇標記中的選項。是否有可能完成使用一個正則表達式,或者我將不得不捕獲選擇的內部html第一,然後選項? 下面是HTML的例子:提取選擇標記內選項的正則表達式

<select id="select_id"> 
    <option selected value="">Select Type</option> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
</select> 

.....

感謝。

+0

你能提供更多的背景嗎?你是否試圖通過JavaScript來做到這一點?你打開包含標記並解析它的文件(或HTTP響應)嗎?你想獲得所有選項還是隻是一個特定的選項? – JamesEggers 2009-01-09 22:39:01

回答

1

儘管可以構建一個可以做你想要的正則表達式,但我真的很希望通過DOM來做它,除非你有一些不使用DOM的理由。沒有建議語言或平臺的標籤,因此很難具體說明。

嘗試使用正則表達式解析HTML而不是將其加載到DOM或使用瀏覽器中通過Javascript可用的DOM的具體原因?

如果你只有一個這樣的片段,您可以使用

value="(\d*)" 

凡(\ d *)會捕捉每一個選項的值。

我看到的問題是,你將不得不通過另一個正則表達式來縮小你的搜索領域來得到這樣一個簡單的查詢。類似於

<select.*>(.*?)</select> 

在外部循環中將在大多數情況下工作。儘管如此,DOM是你的朋友,並避免這樣的黑客。

0

我會尋找一些圖書館DOM支持,但如果你必須做一些與此類似:

"<select.*?>.*?<option value=\"(\d+)\">" + select_id + "</option>.*?</select>" 

哪裏select_id的內容選擇。另外,請確保您啓用了多線支持。