0

gsubルビーでは、正規表現を使用して文字列を検索および置換できることを知っています。

ただし、検索の結果に式を適用して、置換する前に置換することはできません。

たとえば、以下のコードでは、一致した文字列を使用できますが、\0式を適用することはできません (例: \0.to_i * 10)。これを行うと、エラーが発生します。

shopping_list = <<LIST
3 apples
500g flour
1 ham
LIST

new_list = shopping_list.gsub(/\d+/m, \0.to_i * 10)
puts new_list #syntax error, unexpected $undefined

文字列リテラルでのみ機能するようです:

shopping_list = <<LIST
3 apples
500g flour
1 ham
LIST

new_list = shopping_list.gsub(/\d+/m, '\0 string and replace')
puts new_list
4

1 に答える 1