2015-06-24 42 views
0

進出口尋找湊一些HTML和輸出顏色正則表達式:選擇第一個字符,然後標籤

<name>Whatever</name> 

被刮掉和輸出之間的休息是這樣的:

[color=green]W[/color][color=purple]hatever[/color] 

我剛纔第一個完成選擇和第二個字符與所需的顏色標記,但它只給出第一個和第二個字符,就像我提到的使用這個:

<name>[A-Za-z][A-Za-z0-9]*</name> 

我已經修好了一些沒有成功,任何幫助,將不勝感激。謝謝

編輯:更多信息

這是代碼。它與Python讀不知道究竟什麼ü會調用這個壽

skill=videoTitle 
skill=allowDuplicates 
item_infos=<name>[A-Za-z][A-Za-z0-9]*</name> 
item_order=first|rest 
item_skill=rss 

item_info_name=title 
item_info_from=[COLOR=green]' + first + '[/COLOR][COLOR=purple]' + rest + ' [/COLOR] 
item_info_build=%s` 

編輯:在道路的另一種凹凸:

得到它與Fedes回答工作: <name>(.)(.*?)<\/name>

現在我正在尋找不省略空場。當他們像顯示器一樣空着時,標題之後的其他空白場景。感謝所有幫助在這裏人:)

+0

您可以發佈您的實際正則表達式?假設你使用JavaScript是否安全? – BTC

+0

還值得注意的是,你應該使用正則表達式來匹配標籤的內容而不是HTML本身。 – BTC

+0

病態廣告信息頂部 –

回答

0

衆所周知,你不應該用正則表達式解析xhtml,因爲你可以搞砸unicode字符的東西。如果你一定要使用正則表達式

,你可以使用這樣的正則表達式:

<name>(.)(.*?)<\/name> 

隨着替換字符串就象這樣:

[color=green]$1[/color][color=purple]$2[/color] 

Working demo

在另一方面,如果你想爲所有的標籤做,你可以使用這樣的東西:

<(.*?)>(.)(.*?)<\/\1> 

替換字符串:

[color=green]$2[/color][color=purple]$3[/color] 

Working demo

+0

您的第一種方法工作費非常感謝。如果你可以,還有1個問題。如果省略空標籤,例如如果一個文件有''行,並且輸出一堆標籤圍繞它,我寧願將它們跳過。我最近發現這個''([^> /] [^>] *)',如果我把它全部刪除,但它不適合 –

+0

@BobbyPeters,這就是爲什麼正則表達式不是解析html的正確選擇。當你有內部標籤時它會變得混亂。正則表達式只是模式匹配的工具,但如果您需要邏輯,則必須使用html解析器。 –

+0

好的感謝您的幫助Fede。我很感激 –

相關問題