Extract first N digits from a string

后端 未结 4 945
隐瞒了意图╮
隐瞒了意图╮ 2020-12-18 11:14

I want to extract just FIRST TWO DIGITS from some strings. Suppose the data is :

ABC Conference Room Monitor - Z5580J    
ABC 19 Monitor    
ABC 24 Monitor f         


        
相关标签:
4条回答
  • 2020-12-18 11:57

    Another solution:

    strings <- c('ABC Conference Room Monitor - Z5580J','ABC 19 Monitor','ABC 24 Monitor for Video-Conferencing','ABC UltraSharp 24 Monitor -QU2482Z')
    x <- as.numeric(gsub("\\D", "", strings))
    as.numeric(substring(as.character(x*100), 1, 2))
    
    [1] 55 19 24 24
    
    0 讨论(0)
  • 2020-12-18 11:58

    One solution with stringr is:

    library(stringr)
    string <- str_extract_all("ABC Conference Room Monitor - Z5580J","\\(?[0-9,.]+\\)?")[[1]]
    # "\\(?[0-9,.]+\\)?" is the regex, extracts only numbers
    as.numeric(substr(string , 1,2)) # this selects the first two elements
    #as.numeric is optional
    
    0 讨论(0)
  • 2020-12-18 12:03

    Solution using regex \\D to match non-digit characters and \\d{2} to match first two digits.

    as.numeric(sub("\\D*(\\d{2}).*", "\\1", INPUT))
    # [1] 55 19 24 24
    

    data:

    INPUT <- c("ABC Conference Room Monitor - Z5580J",
               "ABC 19 Monitor",
               "ABC 24 Monitor for Video-Conferencing",
               "ABC UltraSharp 24 Monitor -QU2482Z")
    
    0 讨论(0)
  • 2020-12-18 12:05

    Package stringr perhaps allows for the cleanest solution:

    stringr::str_extract(string, "\\d{2}")
     "55" "19" "24" "24"
    
    0 讨论(0)
提交回复
热议问题