作者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/cn.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