위치 - r plot 글자 크기



strsplit을 사용하여 요소를 분할하고 유지하는 방법은 무엇입니까? (2)

gsubfn 패키지의 strapply를 사용할 수 있습니다.

test <- "abc123def"
strapply(X=test,
         pattern="([^[:digit:]]*)(\\d+)(.+)",
         FUN=c,
         simplify=FALSE)

[[1]]
[1] "abc" "123" "def"

https://src-bin.com

R의 strsplit 함수는 주어진 정규식을 일치시키고 삭제하여 나머지 문자열을 벡터로 나눕니다.

>strsplit("abc123def", "[0-9]+")
[[1]]
[1] "abc" ""    ""    "def" 

하지만 정규식을 사용하여 문자열을 같은 방법으로 분할해야하지만 일치 항목도 유지해야합니까? 다음과 같은 것이 필요합니다.

>FUNCTION("abc123def", "[0-9]+")
[[1]]
[1] "abc" "123" "def" 

strapply ( "abc123def", "[0-9] + | [az] +")를 사용하면 일치하지만 정규 표현식으로는 나머지 문자열을 캡처 할 수 없으면 어떻게 될까요?


Answer #1

lookaround 어설 션을 사용할 수 있습니다.

> test <- "abc123def"
> strsplit(test, "(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)", perl=T)
[[1]]
[1] "abc" "123" "def"




strsplit