Re: [問題] 用regex從檔名尾拿出數4-7位數字

看板R_Language作者 (阿吠)時間3年前 (2021/10/14 01:32), 編輯推噓3(3010)
留言13則, 4人參與, 最新討論串3/3 (看更多)
這個其實很單純 最後要的數字前面一定有一個非數字的字元?(" "或"_") 所以也不用管到底是4位數還是7位數,或其他任何位數 把結尾的連續數字取出來就好了 直到前面的字元不是數字為止 stringr裡面的str_extract非常好用 str_extract("你的檔名", "[0-9]+$") -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.30.180 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1634146335.A.465.html

10/14 01:47, 3年前 , 1F
如果想用gsub,就是原文留言a大講的那樣 用.會包山包海
10/14 01:47, 1F

10/14 01:48, 3年前 , 2F
我的習慣寫法會是"(.+)([_ ])([0-9]+$)", "\\3"
10/14 01:48, 2F

10/14 01:49, 3年前 , 3F
拆成三部分(因為第一部分也可能有數字),不能[^0-9]
10/14 01:49, 3F

10/14 01:51, 3年前 , 4F
缺點是要先知道分隔字元是且只" "或"_",並不是那麼泛用
10/14 01:51, 4F

10/14 01:51, 3年前 , 5F
str_extract是近期覺得最好的方案
10/14 01:51, 5F

10/14 02:07, 3年前 , 6F
補充,如果除了" "和"_"還有其他可能的分隔字元,改成
10/14 02:07, 6F

10/14 02:12, 3年前 , 7F
"(.+)([^0-9])([0-9]+$)", "\\3" 就可以了(非數字做分隔)
10/14 02:12, 7F

10/14 06:56, 3年前 , 8F
感謝f大,學習了~(另想確定,所以"\\n"對應的就是第幾個括
10/14 06:56, 8F

10/14 06:56, 3年前 , 9F
號的比對結果嗎?謝謝)
10/14 06:56, 9F

10/14 13:44, 3年前 , 10F
沒錯, \\n 就是對應第n個括號
10/14 13:44, 10F

10/14 15:19, 3年前 , 11F
確實方便很多,推薦。
10/14 15:19, 11F

11/01 20:36, , 12F
用"(.+)([_ ])([0-9]+$)", "\\3"成功拿出第3部分
11/01 20:36, 12F

11/01 20:37, , 13F
非常感謝fox1375的指點
11/01 20:37, 13F
文章代碼(AID): #1XPnWVHb (R_Language)
文章代碼(AID): #1XPnWVHb (R_Language)