2012-08-06 114 views
-2

我試圖解決從字符串中刪除HTML標記的問題。我意識到正則表達式是一個更好的解決方案,但我想弄清楚這裏出了什麼問題。使用If語句的布爾賦值

這個想法是假設我們使用'標記'來監視標記,並通過比較每個字符的值來修改它的值。

問題是,標籤的值永遠不會改變:

def remove_tag(s): 
    tag = True 

    for c in s: 
     print "c = %s" % c 
     if (c == '<'): 
      print 'start_tag' 
      tag == True 
      print tag 
     elif (c == '>'): 
      print 'end tag' 
      tag == False 
      print tag 

運行:

remove_tag("<h1>Title</h1>") 

產地:

c = < 
start_tag 
True 
c = h 
c = 1 
c = > 
end tag 
True 
c = T 
c = i 
c = t 
c = l 
c = e 
c = < 
start_tag 
True 
c =/
c = h 
c = 1 
c = > 
end tag 
True 
None 

我百思不得其解,爲什麼「結束標記'被打印,但'False'值不會被分配給標籤。

+2

您不妨避開對SO ......使用與HTML正則表達式的主題;)HTTP ://stackoverflow.com/a/1732454/83109 – 2012-08-06 10:07:25

回答

9

這些線的比較,而不是分配:

tag == True 
tag == False 

你想

tag = True 
+0

Arrhgh!謝謝一堆! – 2012-08-06 10:07:36