作者fox1375 (阿吠)
看板R_Language
標題Re: [問題] 用regex從檔名尾拿出數4-7位數字
時間Thu Oct 14 01:32:10 2021
這個其實很單純
最後要的數字前面一定有一個非數字的字元?(" "或"_")
所以也不用管到底是4位數還是7位數,或其他任何位數
把結尾的連續數字取出來就好了
直到前面的字元不是數字為止
stringr裡面的str_extract非常好用
str_extract("你的檔名", "[0-9]+$")
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.30.180 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1634146335.A.465.html
1F:→ fox1375: 如果想用gsub,就是原文留言a大講的那樣 用.會包山包海 10/14 01:47
2F:→ fox1375: 我的習慣寫法會是"(.+)([_ ])([0-9]+$)", "\\3" 10/14 01:48
3F:→ fox1375: 拆成三部分(因為第一部分也可能有數字),不能[^0-9] 10/14 01:49
4F:→ fox1375: 缺點是要先知道分隔字元是且只" "或"_",並不是那麼泛用 10/14 01:51
5F:→ fox1375: str_extract是近期覺得最好的方案 10/14 01:51
6F:→ fox1375: 補充,如果除了" "和"_"還有其他可能的分隔字元,改成 10/14 02:07
7F:→ fox1375: "(.+)([^0-9])([0-9]+$)", "\\3" 就可以了(非數字做分隔) 10/14 02:12
8F:推 locka: 感謝f大,學習了~(另想確定,所以"\\n"對應的就是第幾個括 10/14 06:56
9F:推 locka: 號的比對結果嗎?謝謝) 10/14 06:56
10F:→ fox1375: 沒錯, \\n 就是對應第n個括號 10/14 13:44
11F:推 andrew43: 確實方便很多,推薦。 10/14 15:19
12F:→ luenchang: 用"(.+)([_ ])([0-9]+$)", "\\3"成功拿出第3部分 11/01 20:36
13F:→ luenchang: 非常感謝fox1375的指點 11/01 20:37