你可以使用Regexp.union:
regex = Regexp.union(
/^Header_1/,
/^Header_2/,
/^Header_3/,
/^Header_4/,
/^:$/
)
variable.gsub(regex, '')
请注意^something$ 不适用于包含超过something 的字符串:)
因为^ 用于匹配字符串的开头,$ 用于匹配字符串的结尾。
所以我故意删除了$。
另外,当您只需要删除匹配的字符串时,您不需要括号。
你也可以这样使用:
headers = %w[Header_1 Header_2 Header_3]
regex = Regexp.union(*headers.map{|s| /^#{s}/}, /^\:$/, /etc/)
variable.gsub(regex, '')
当然,您可以在不明确定义的情况下删除标题。
标题后面很可能有空格?
如果是这样,您可以这样做:
variable = "Header_1 something else"
puts variable.gsub(/(^Header[^\s]*)?(.*)/, '\2')
#=> something else
variable = "Header_BLAH something else"
puts variable.gsub(/(^Header[^\s]*)?(.*)/, '\2')
#=> something else