我有一個等于 stringnum 的字串。
字串編號 = 0007001369920090687073
我需要使用正則運算式來獲取前 3 個零之后的前 9 個數字。我正在使用這個正則運算式代碼 "(?<=000)\d{9}" 這給了我 "700136992"
現在我有了這個,我需要創建一個名為
結果等于 stringnum 的正則運算式版本
結果 = 700136992
我試過了
result = scanline.match(/^.{3}\K.{9}/)
但它給了我
=> #<MatchData "700136992>
這個數字是我需要的,但我不需要它周圍的 #<matchdata 東西。我該如何解決這個問題
result = "700136992"
如果有另一種不使用 .match 方法來設定此值的方法,我也可以這樣做。我是正則運算式的新手,所以我不確定在正則運算式之后設定新值的最佳方法
uj5u.com熱心網友回復:
您可以使用string[regexp, capture = 0] → new_string or nil:
當
regexp給出 Regexp 引數并且capture引數是0時,回傳在 中找到的第一個匹配子字串self,或者nil如果沒有找到:
這是一個簡短的演示:
stringnum = '0007001369920090687073'
result = stringnum[/(?<=000)\d{9}/]
puts result
# => 700136992
在線查看Ruby 演示。
uj5u.com熱心網友回復:
試試這個
p stringnum[/^.{3}\K.{9}/)/]
uj5u.com熱心網友回復:
為什么要使用正則運算式?
stringnum = "0007001369920090687073"
stringnum[3,9]
#=> "700136992"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/460595.html
