2009-06-26 80 views
0

我正在處理我的網站,並希望更改頁面上的某些內容。替換文本,Jython,正則表達式

我想替換以下字符串:

in the 
<SPAN class="Bold"> 
More... 
</SPAN> 
column to your right. 

有些時候是不具備<span>標籤:

in the 
More... 
column to your right. 

我想與「下」來取代這一點。我試着用Python中的簡單替換()來做這件事,但是因爲有時文本沒有<span>標籤,並且在多行上看起來不起作用。我唯一的想法是使用正則表達式,但我不能加快正則表達式,任何人都可以伸出援助之手嗎?

感謝

EEF

+0

你用「下面」替換了什麼? 「更多...」部分,還是全部? – 2009-06-26 15:10:52

+0

我正在尋找在兩種情況下全部取代它。 – RailsSon 2009-06-26 15:11:38

回答

2

假設你已經在字符串 「foo」 的HTML文本,代碼要做到這一點在Python會像:

import re 
#re.DOTALL is used to make the . match all characters including newline 
regexp = re.compile('in the.*?More\.\.\..*?column to your right\.', re.DOTALL) 
re.sub(regexp, 'below', foo) 
0

試試這個:

import re 
pattern = re.compile('(?:<SPAN class="Bold">\s*)?More\.\.\.(?:\s*</SPAN>)?') 
str = re.sub(pattern, 'below', str) 

(?:…)語法是一個不能被引用的非捕獲分組作爲反向引用。