使用正则表达式我试图给定的字符串中剥离所有<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
吨
'标签。 –