[英]Get string from Regex in Ruby
我需要在ruby中的正則表達式中添加一個字符串,這就是我正在嘗試做的事情(我將所有文件放在目錄中,打開它們,查找它們是否具有模式,然后通過添加到已經存在的模式來修改該模式,為此,我需要實際的字符串)
Dir["*"].each do |tFile|
file = File.open(tFile, "rb")
contents = file.read
imageLine=/<img class="myclass"(.*)\/>/
if(contents=~imageLine)
puts contents.sub!(imageLine, "some string"+imageLine+"some other string")
end
end
您正在使用sub!
這是就地修改器版本。 盡管有其用途,但該方法的結果不是字符串,而是指示是否進行了任何操作。
sub
方法更適合這種情況。 如果您有多個必須替換的匹配項,請使用gsub
。
進行替換時,可以使用\\1
類的占位符來處理捕獲的部分,在正則表達式中使用方括號捕獲,也可以使用塊版本進行更多的任意操作。
IMAGE_REGEXP = /<img class="myclass"(.*)\/>/
Dir["*"].each do |tFile|
File.open(tFile, "rb") do |in|
puts in.read.gsub(IMAGE_REGEXP) { |s| "some string#{s}some other string" }
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.