regex - 转换 MMM。DD, YY 字符串到 date9。在SAS?
问题描述
有没有没有正则表达式的方法可以将例如myString = "Dec. 31, 18"
转换为适合的整数date9.
?
我从 lexjansen.com 找到了一个 PDF,其中列出了许多 SAS 日期格式:
据我了解,我可以做类似的事情myDate = input("21Dec2018",date9.)
,但是没有与我的输入字符串匹配的 SAS 格式,所以我不得不先执行一些花哨的正则表达式为了转换myString
为date9.
. 那是对的吗?
一个合适的正则表达式是 恕我直言s/([0-9]{3}). ([0-9]{1,2}), ([0-9]{2})/\2\120\3/
,它收集 3 个字母的月份\1
,一个或两位数的日期\2
,以及两位数的年份,\3
并相应地重新排列。我现在的问题是如何在 SAS 中使用正确的转义来实现这个正则表达式?
参考
- 根据Informat for MMM-DD-YY看起来我确实需要一个正则表达式
- SAS 日期、时间和日期时间值定义 SAS 时间整数。
解决方案
我认为本文第一个示例中描述的技术将很有用。
https://support.sas.com/resources/papers/proceedings12/245-2012.pdf
推荐阅读
- batch-file - 你如何制作一个打开一个exe但也“点击”该exe中的运行按钮的批处理文件?
- sql - 使用表达式更改框颜色
- c++ - 模板结构的多个声明,用于获取枚举,描述模板类型
- python - Django - 可以将酥脆的表格分成 2 列吗?
- laravel - 我想用故事的分页显示标签的所有标签和故事
- latex - 有没有办法强制整页图像出现在您将它们放在 tex 文件中的位置
- authentication - 从 servlet 访问 FileNet 内容引擎
- python - 如何使用 dpkt 编写器中实时捕获的标头中的时间戳?
- python - Pygame 图像到表面 fps
- sql - SQL查询以获取特定日期范围/期间的时间范围内的记录