从单个字符串中提取两年

时间:2018-07-02 08:57:54

标签: r regex

我有一个表,我试图操纵它以提取年份值并将其放入该表的新字段中。例如:

原始表

    @Override
    protected Map<String,String> getParams(){
        Map<String, String> params = new HashMap<String, String>();
        params.put("MY_FIRST_DATA_KEY", "MY_FIRST_DATA_VALUE");
        params.put("MY_SECOND_DATA_KEY", "MY_SECOND_DATA_VALUE");

        return params;
    }

所需结果

Code    Description
A       Acme (1985 - 2002)
B       Coakc (2011 - 2012)
A       Jupiter(11) (2011 - )
C       Capital Management Corporation (2011 - )
D       Diuretics Inc (2011 - )
E       Charter (2011 - )

我在想类似的东西:

  • 对于Years,如果(和)之间有11个空格,请在(和)右边提取4个字符。 否则请在(
  • 为了描述,一切都剩下了(...但是Jupiter(11)把它扔掉了

1 个答案:

答案 0 :(得分:3)

使用tidyverse框架,您可以按以下方式进行操作

library(dplyr)
library(stringr)    
df %>% mutate(Start_year=str_match(Description,"(?<=\\()\\d{4}"),
                End_year=str_match(Description,"\\d{4}(?=\\))"))