여러 공간을 단일 공간으로 병합합니다. 후행 / 선행 공백 제거
여러 공백을 단일 공백으로 병합하고 (공백도 탭이 될 수 있음) 후행 / 선행 공백을 제거하고 싶습니다.
예를 들면 ...
string <- "Hi buddy what's up Bro"
...에
"Hi buddy what's up bro"
여러 공백을 단일 공백으로 대체하기 위해 Regex에서 제공된 솔루션을 확인했습니다 . 장난감 문자열 내부에 \ t 또는 \ n을 정확한 공간으로 입력하지 말고 gsub
. R에서 원합니다.
장난감 끈에 여러 공간을 넣을 수 없습니다. 감사
이것은 귀하의 요구를 충족시키는 것 같습니다.
string <- " Hi buddy what's up Bro "
library(stringr)
str_replace(gsub("\\s+", " ", str_trim(string)), "B", "b")
# [1] "Hi buddy what's up bro"
단일 정규식을 사용하는 또 다른 접근 방식 :
gsub("(?<=[\\s])\\s*|^\\s+|\\s+$", "", string, perl=TRUE)
설명 ( 부터 )
NODE EXPLANATION
--------------------------------------------------------------------------------
(?<= look behind to see if there is:
--------------------------------------------------------------------------------
[\s] any character of: whitespace (\n, \r,
\t, \f, and " ")
--------------------------------------------------------------------------------
) end of look-behind
--------------------------------------------------------------------------------
\s* whitespace (\n, \r, \t, \f, and " ") (0 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
| OR
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
\s+ whitespace (\n, \r, \t, \f, and " ") (1 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the
string
또는 단순히 squish
기능을 시도하십시오stringr
library(stringr)
string <- " Hi buddy what's up Bro "
str_squish(string)
# [1] "Hi buddy what's up Bro"
이러한 작업을 수행하기 위해 외부 라이브러리를 가져올 필요는 없습니다.
string <- " Hi buddy what's up Bro "
string <- gsub("\\s+", " ", string)
string <- trimws(string)
string
[1] "Hi buddy what's up Bro"
또는 한 줄로 :
string <- trimws(gsub("\\s+", " ", string))
훨씬 더 깨끗합니다.
는 qdapRegex
가 rm_white
이 처리하는 기능 :
library(qdapRegex)
rm_white(string)
## [1] "Hi buddy what's up Bro"
You could also try clean
from qdap
library(qdap)
library(stringr)
str_trim(clean(string))
#[1] "Hi buddy what's up Bro"
Or as suggested by @Tyler Rinker (using only qdap
)
Trim(clean(string))
#[1] "Hi buddy what's up Bro"
For this purpose no need to load any extra libraries as the gsub()
of Base r package does the work.
No need to remember those extra libraries. Remove leading and trailing white spaces with trimws()
and replace the extra white spaces using gsub()
as mentioned by @Adam Erickson.
`string = " Hi buddy what's up Bro "
trimws(gsub("\\s+", " ", string))`
Here \\s+
matches one or more white spaces and gsub
replaces it with single space.
To know what any regular expression is doing, do visit this link as mentioned by @Tyler Rinker.
Just copy and paste the regular expression you want to know what it is doing and this will do the rest.
Another solution using strsplit:
Splitting text into words, and, then, concatenating single words using paste function.
string <- "Hi buddy what's up Bro"
stringsplit <- sapply(strsplit(string, " "), function(x){x[!x ==""]})
paste(stringsplit ,collapse = " ")
For more than one document:
string <- c("Hi buddy what's up Bro"," an example using strsplit ")
stringsplit <- lapply(strsplit(string, " "), function(x){x[!x ==""]})
sapply(stringsplit ,function(d) paste(d,collapse = " "))
ReferenceURL : https://stackoverflow.com/questions/25707647/merge-multiple-spaces-to-single-space-remove-trailing-leading-spaces
'IT박스' 카테고리의 다른 글
def`self.function` 이름은 무엇을 의미합니까? (0) | 2020.12.29 |
---|---|
armeabi는 무엇이며 왜 사용합니까? (0) | 2020.12.29 |
플래그가있는 Python re.sub가 모든 발생을 대체하지는 않습니다. (0) | 2020.12.29 |
Matplotlib : 축 색상 변경 (0) | 2020.12.29 |
컴파일 타임에 대상 프레임 워크 버전 감지 (0) | 2020.12.29 |