使用できます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