[英]Get id from string with Ruby
我有這樣的字符串:
如何使用Ruby從中獲取ID(205193、183863、1003)?
s[/\\d+/]
[
"/detail/205193-foo-var-bar-foo.html",
"/detail/183863-parse-foo.html",
"/detail/1003-bar-foo-bar.html"
].each { |s| puts s[/\d+/] }
也可以做這樣的事情
"/detail/205193-foo-var-bar-foo.html".gsub(/\/detail\//,'').to_i
=> 205193
regex = /\/detail\/(\d+)-/
s = "/detail/205193-foo-var-bar-foo.html"
id = regex.match s # => <MatchData "/detail/205193-" 1:"205193">
id[1] # => "205193"
$1 # => "205193"
MatchData
對象會將字符串的整個匹配部分存儲在第一個元素中,以及從第二個元素開始的所有匹配子組中(取決於有多少個匹配子組)
而且,Ruby提供了$1
到最近匹配的子組的快捷方式。
一種簡單的方法是to_i
字符串的/detail/
部分,然后在剩下的地方調用to_i
:
"/detail/1003-bar-foo-bar.html".gsub('/detail/','').to_i # => 1003
s = "/detail/205193-foo-var-bar-foo.html"
num = (s =~ /detail\/(\d+)-/) ? Integer($1) : nil
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.