使用正則表達式我試圖給定的字符串中剝離所有<br>
的。紅寶石
def extract(a)
a=a.delete("/ (\<br\>)+ /")
puts a
end
extract("e<gr>y<br>t<gh>hello")
是給egytghhello
作爲輸出。爲什麼的<gr>
的<r>
和gh
<>
沒有得到印?
使用正則表達式我試圖給定的字符串中剝離所有<br>
的。紅寶石
def extract(a)
a=a.delete("/ (\<br\>)+ /")
puts a
end
extract("e<gr>y<br>t<gh>hello")
是給egytghhello
作爲輸出。爲什麼的<gr>
的<r>
和gh
<>
沒有得到印?
這應該以防萬一佔<br>
,<br />
和<br/>
。
str = "Hi and <gr>y<br>t<gh>hello<br />bla<br/> some moar"
puts str.gsub(/<br ?\/?>/,'')
或者使用喜歡你的方法。例如:
def extract(str)
str.gsub(/<br ?\/?>/,'')
end
puts extract("Hi and <gr>y<br>t<gh>hello<br />bla<br/> some moar")
我個人認爲最好是有方法返回一個字符串,然後做puts extract()
不必在方法內部的puts
。
String.delete
並不需要一個正則表達式作爲參數,它採用一組字母,所有這些都將從這就是所謂的字符串被刪除。
所以,你的代碼是說:刪除任何的<
,>
,b
,r
,(
,)
,+
,空間和/
。
如果您想使用正則表達式來刪除部分字符串(或gsub!
以進行就地替換),您將使用String.gsub
。
有關使用正則表達式處理HTML的不可靠性通常的警告適用於:考慮使用類似引入nokogiri,特別是如果你有超出這個任何分析或處理要求。
嘗試以下操作:
a = a.gsub(/<br>/, '')
我試着做'a.gsub(/(\
)+ /, 「」)',但其打印同樣的事情。 – Ava
' 「電子ý你好」 .gsub(/(\ ý你好」',原始字符串不變(當然,因爲有沒有在原來的字符串模式的匹配。在強調一些問題與使用上的HTML正則表達式,你的模式將只匹配從其他文字用空格隔開突破標籤,而不會處理自閉XML風格'
噸
)+/「」)''返回的 「e
噸
'標籤。 –