R正则表达式解析调用选项代码

时间:2018-10-30 01:39:38

标签: r regex string

我有以下形式的看涨期权代码:

.TSLA181012C100

我想解析它以提取18、10和12。但是,我不太确定该怎么做,因为句点后的字母可以是可变长度,而句点后的数字也可以是可变长度。

是否有正则表达式可以从右侧找到“ C”并在左侧获得6位数字?

2 个答案:

答案 0 :(得分:1)

我们可以在此处尝试使用sub作为基本的R选项:

code <- ".TSLA181012C100"
num1 <- sub("^\\.[A-Z]+(\\d{2})\\d{4}C.*", "\\1", code)
num1
num2 <- sub("^\\.[A-Z]+\\d{2}(\\d{2})\\d{2}C.*", "\\1", code)
num2
num3 <- sub("^\\.[A-Z]+\\d{4}(\\d{2})C.*", "\\1", code)
num3

[1] "18"
[1] "10"
[1] "12"

答案 1 :(得分:0)

此正则表达式应该起作用:(\d{2}){3}C或简单地\d+C