【问题标题】:strsplit a string into characters, but keeping diagraphsstr将字符串拆分为字符,但保留图表
【发布时间】:2021-03-24 07:26:13
【问题描述】:

如何将英文单词拆分成字符,但保持连字符不变(例如“ch”、“th”、“gh”)?

例如,对于字符串“that”,我想将其拆分为“th”、“a”、“t”,而不是“t”、“h”、“a”、“t”。

【问题讨论】:

    标签: r strsplit


    【解决方案1】:

    这是一个函数f,可能有助于拆分

    dg <- c("ch", "th", "gh", "ai")
    v <- c("thanks", "chain", "banana", "that", "rain")
    
    f <- Vectorize(function(s) {
      res <- c()
      while (nchar(s)) {
        k <- ifelse(substr(s, 1, 2) %in% dg, 2, 1)
        res <- c(res, substr(s, 1, k))
        s <- substr(s, k + 1, nchar(s))
      }
      res
    })
    

    你会看到

    > f(v)
    $thanks
    [1] "th" "a"  "n"  "k"  "s" 
    
    $chain
    [1] "ch" "ai" "n"
    
    $banana
    [1] "b" "a" "n" "a" "n" "a"
    
    $that
    [1] "th" "a"  "t"
    
    $rain
    [1] "r"  "ai" "n"
    

    【讨论】:

      【解决方案2】:
      strsplit("that", split = "(?<=t(?!h)|th|a)", perl = TRUE)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-24
        相关资源
        最近更新 更多