Remove the letters between two patterns of strings in R

后端 未结 3 1705
花落未央
花落未央 2020-12-06 01:58

How can I remove the letters between two specific patterns in R?

For instance

a= \"a#g abcdefgtdkfef_jpg>pple\"

I would like to

3条回答
  •  囚心锁ツ
    2020-12-06 02:38

    There's no need to load a package for this operation. You can use the base R function sub. It's used to match the first occurrence of a regular expression.

    a <- "a#g abcdefgtdkfef_jpg>pple"
    sub("#g.*jpg>", "", a)
    # [1] "apple"
    

    Regular expression explained:

    • #g matches "#g"
    • .* matches any character except \n (zero or more times)
    • jpg> matches "jpg>"

    So here we're removing everything starting at #g up to and including jpg>


    In regards to your comment

    I tried to find some function in stringR but I couldn't

    It's actually spelled stringr (case-sensitive). You could use str_replace.

    library(stringr)
    str_replace(a, "#g.*jpg>", "")
    # [1] "apple"
    

提交回复
热议问题