【发布时间】:2015-09-19 11:13:37
【问题描述】:
我有一个表单字符串
stamp = "section_d1_2010-07-01_08_00.txt"
并希望能够提取其中的一部分。我已经能够通过使用重复的 str_extract 到达我想要的部分来做到这一点,例如抓住月份
month = str_extract(stamp,"2010.+")
month = str_extract(month,"-..")
month = str_extract(month,"..$")
但是,这是非常低效的,必须有更好的方法。对于这个特定的例子,我可以使用
month = substr(stamp,17,18)
但是我正在寻找更通用的东西(以防数字的数量发生变化)。
我认为我需要正则表达式来获取某些标志(_ 或 - 或第三个 _ 等)之后的内容。我也尝试过使用 sub,但遇到了同样的问题,我需要几个来磨练我真正想要的。
将不胜感激如何说出月份(此处为 07)和小时(此处为 08)的示例。
【问题讨论】:
-
您是否希望输入字符串始终具有相同的宽度?
-
你试过我帖子里的
gsub和str_extract了吗? -
感谢@akrun,这正是我所需要的。
-
@TimBiegeleisen no - 字符数可能会改变(为什么我不能只使用 substr)