2010-03-12 37 views
1

給定一個HTML字符串,如:(?如果它甚至有可能)正則表達式來找到ID =「findme」的值在HTML元素

<span class="findme" id="31313131313">The Goods</span> 

ColdFusion的什麼樣的正則表達式將只返回:31313131313

謝謝!

+0

你知道正則表達式不應該解析HTML嗎? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags,並downvoted幾個人的答案,你還在期待更多的東西? – YOU 2010-03-12 06:08:05

+0

試圖弄清楚這一點。 – AnApprentice 2010-03-12 06:10:57

+0

埃裏克,謝謝,但這是不同的,最後一個問題是得到SPAN ...這個問題是如何提取ID。 – AnApprentice 2010-03-12 06:25:52

回答

2

嘗試,<span[^>]+?id="([^"]+)".*

根據Amarghosh回答您的意見,這將是

<cfset uniqueID = rereplace(results[i],'<span[^>]+?id="([^"]+)".*',"\1")> 
+0

Thanks Mark,剛剛嘗試過,它很接近......它回來了: 581-1268367477845>世貿中心Captive創建了一個價值10億美元的聯邦應急管理局撥款,並提供保險範圍 – AnApprentice 2010-03-12 06:31:10

+0

更新! ........ – YOU 2010-03-12 06:32:01

+0

確定這樣做了! (。*)',「\ 1」)>] +?id =「([^」] +)「 – AnApprentice 2010-03-12 06:32:06

2

這是不是一個好主意,通常使用正則表達式解析HTML。改爲使用html解析器。

也就是說,下面的正則表達式會給你從給定的字符串的編號

<span[^>]*id="(\d+)" 

匹配,$1的第一組,將包含31313131313

它假設數字ID。對於字母數字字符,請將\d替換爲[0-9a-zA-Z]。如果_也可以,您可以使用\w

+0

@Amarghosh thxs,它將始終是數字。我只是試過這個,但它返回了整個字符串,沒有改變。任何想法爲什麼? – AnApprentice 2010-03-12 06:16:41

+0

下面是整行: \t ] * id =「(\ d +)」','\ 3')> – AnApprentice 2010-03-12 06:17:43

+0

將'\ 3'更改爲'\ 1 「我們只有一個捕獲組。 – Amarghosh 2010-03-12 06:26:35