'Extract string with digits and special characters in r

I have a list of filenames in the format "filename PID00-00-00" or just "PID00-00-00". I want to extract part of the filename to create an ID column.

I am currently using this code for the string extraction

names(df) <- stringr::str_extract(names(df), "(?<=PID)\\d+")

binded1 = rbindlist(df, idcol = "ID")%>%
  as.data.frame(binded1)

This gives the ID as the first set of digits after PID. e.g. filename PID1234-00-01 becomes ID 1234.

I want to also extract the first hyphen and following digits. So from filename PID1234-00-01 I want 1234-00.

What should my regex be?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source