Remove everything after space in string

前端 未结 4 477
后悔当初
后悔当初 2020-11-30 12:20

I would like to remove everything after a space in a string.

For example:

\"my string is sad\"

should return

\"m         


        
4条回答
  •  有刺的猬
    2020-11-30 13:01

    You may use a regex like

    sub(" .*", "", x)
    

    See the regex demo.

    Here, sub will only perform a single search and replace operation, the .* pattern will find the first space (since the regex engine is searching strings from left to right) and .* matches any zero or more characters (in TRE regex flavor, even including line break chars, beware when using perl=TRUE, then it is not the case) as many as possible, up to the string end.

    Some variations:

    sub("[[:space:]].*", "", x) # \s or [[:space:]] will match more whitespace chars
    sub("(*UCP)(?s)\\s.*", "", x, perl=TRUE) # PCRE Unicode-aware regex
    stringr::str_replace(x, "(?s) .*", "")   # (?s) will force . to match any chars
    

    See the online R demo.

提交回复
热议问题