我想從這個字符串拉照片ID:30280
:如何在正則表達式中使用變量?
"--- !ruby/struct:PhotoJob \nimage_id: 30280\n"
我見過這種在正則表達式做事情之前,你可以尋找符合像/nimage_id: \d/
,然後返回,一對夫婦的參數\d
。
如何從該字符串中返回/d
或30280
?
我想從這個字符串拉照片ID:30280
:如何在正則表達式中使用變量?
"--- !ruby/struct:PhotoJob \nimage_id: 30280\n"
我見過這種在正則表達式做事情之前,你可以尋找符合像/nimage_id: \d/
,然後返回,一對夫婦的參數\d
。
如何從該字符串中返回/d
或30280
?
使用小組賽"--- !ruby/struct:PhotoJob \nimage_id: 30280\n".scan(/image_id: (\d+)/)[0]
>> matches = "--- !ruby/struct:PhotoJob \nimage_id: 30280\n".match(/struct:(.*) .*image_id: (\d+)/m)
=> #<MatchData "struct:PhotoJob \nimage_id: 30280" 1:"PhotoJob" 2:"30280">
>> matches[1]
=> "PhotoJob"
>> matches[2]
=> "30280"
str = "--- !ruby/struct:PhotoJob \nimage_id: 30280\n"
image_id = str.scan(/\d+/)[0]
#=> "30280"
RE = '\nimage_id: (\d+)\n'
由各地\ d +括號中定義的組捕獲數量
有什麼好笑的是,你有一個Ruby結構存在,所以你可以執行以下操作並讓YAML負責解析。
PhotoJob = Struct.new(:image_id)
job = YAML.load("--- !ruby/struct:PhotoJob \nimage_id: 30280\n")
job.image_id
=> 30280
我想你的意思是[0]? – fl00r 2011-03-11 18:01:33
當然錯過了這個,1是使用匹配時 – mpapis 2011-03-11 18:02:09
感謝mpapis!現在我達到了3級程序員的地位。 – Trip 2011-03-11 18:15:01