簡體   English   中英

從Ruby中的Regex獲取字符串

[英]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

您可以將subgsub與捕獲組一起使用:

"foo".gsub(/(o)/, '\1x')
=> "foxox"

有關更多信息,請參閱docs

您正在使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM