2010-01-08 132 views
2

我一直在尋找重新文檔和其他問題,但我一直遇到與正則表達式的麻煩。替換Python中的文本

我需要從字符串中取出[tag]中的東西。

string = "Article Name [Tag Name]" 
#and I want to go to 
string = "Article Name" 

我真的很感激,如果有人可以幫忙。

回答

1

這不使用正則表達式,所以如果這是一個必要條件,這不是一個答案,但你可以這樣做:

string = string.split('[')[0].strip() 
+0

這一個似乎對我來說最合適。謝謝! – user29772 2010-01-08 05:03:15

2
re.sub("\s*\[.*?\]", "", string) 
0
re.sub(r"(.*) \[.*\]", r"\1", string) 

這如果是在字符串的結尾將只刪除標記。

1

如果您確定[標籤名稱]總是出現在文章名稱後面,那麼您可以在沒有正則表達式的情況下執行此操作。

>>> string="Article Name [Tag Name]" 
>>> string[:string.find(" [")] 
'Article Name' 

或.partition

>>> string.partition(" [")[0] 
'Article Name' 
0

更妙的是無正則表達式:

txt = "Article Name [Tag Name]" 
if txt.rfind('[') and txt.rfind(']') > txt.rfind('['): txt = txt[:txt.rfind('[')] 
if txt[-1] == ' ': txt = txt[:-1] 
0

這裏是一個fo r []標記的多個實例

>>> string = "Article Name [Tag Name] blah blah [tag name2] blah blah [tag name3]" 
>>> for i in string.split("]"): 
... print i[ : i.find("[") ] 
... 
Article Name 
blah blah 
blah blah