2011-10-20 81 views
0

今天我用正則表達式打破了我的頭。我無法提取文本的一部分。我的文字是這樣的:有人可以幫助我用RegExp提取文本嗎?

<!--TEXT[title]--> 
sometext 1 
<!--END--> 
<!--TEXT[title]--> 
sometext 2 
<!--END--> 

我想要一個陣列

["title]-->sometext1" 
,"title]-->sometext2"] 

我有這樣的正則表達式代碼mytext.match(/<!--TEXT[([.|\w|\r|\n]+)<!--END-->/m);

+3

是本文的一些HTML裏面?如果是這樣,不要用正則表達式解析HTML:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454相反,解析DOM 。 – 2011-10-20 14:37:38

+1

@JackManey這是我最喜歡的回答。 – MrMisterMan

+0

我通過ajax加載文本。 – iLevi

回答

3

在得到這個假設你需要一個正則表達式下面應該工作:

<\!--TEXT\[([^\]]*)\]-->\s*\n(.*)(?!<\!--END-->) 

如果此文本在DOM中,那麼解析DOM會好得多永遠。

說明:

<\!--TEXT\[ // Match the start. 
([^\]]*) // Match (in group 1), everything up until the next ']' 
\]-->\s*\n // Match to the end of this line. 
(.*) // Match anything (in group 2). 
(?!<\!--END-->) // Stop before the end tag is next. (This will mean you get everything up to, but not including the previous line break). 
+1

當然這會失敗嵌套評論,但這是OP應該知道的東西... – FailedDev

+0

是的,如果你要處理嵌套評論你想要一個詞法分析器或DOM。另一方面,在這種特殊情況下,它看起來不像是嵌套的(沒有一些錯誤)。 – Thor84no

相關問題