숫자, 대괄호 및 문자가 섞여있는 문자열이 있습니다. 나는 그들을 다른 행으로 나누고 싶다. 그것을 할 수있는 방법은 무엇입니까? 당신의 도움을 주셔서 감사합니다.분할 문자열 (숫자, 대괄호 및 문자가 섞여 있음) R
예를 들어, 문자열은 "3. abc4(). 3. efg3() a() 4.ed."
과 같습니다. 최종 결과는 다음과 같을 것이다 : 당신은 정규 표현식이 할 수
3. abc4().
3. efg 3() a()
4. ed.
숫자, 대괄호 및 문자가 섞여있는 문자열이 있습니다. 나는 그들을 다른 행으로 나누고 싶다. 그것을 할 수있는 방법은 무엇입니까? 당신의 도움을 주셔서 감사합니다.분할 문자열 (숫자, 대괄호 및 문자가 섞여 있음) R
예를 들어, 문자열은 "3. abc4(). 3. efg3() a() 4.ed."
과 같습니다. 최종 결과는 다음과 같을 것이다 : 당신은 정규 표현식이 할 수
3. abc4().
3. efg 3() a()
4. ed.
. 여기에 하나의 방법이 있습니다.
x <- "3. abc4(). 3. efg3() a() 4.ed."
m <- gregexpr("\\d\\..*?(?=\\s*\\d\\.|$)",x, perl=T)
v <- regmatches(x,m)[[1]]
v; #[1] "3. abc4()." "3. efg3() a()" "4.ed."
이렇게하면 각각의 개별 요소가있는 벡터가됩니다. 그럼 당신이 원하는 경우에 당신은 당신이 정규 표현식을 처음 사용하는 경우
cat(paste(v, collapse="\n"))
# 3. abc4().
# 3. efg3() a()
# 4.ed.
(그렇지 않으면 개행 문자가 "\ n을"로 인쇄 cat
를 사용하여) 그를 인쇄 한 후 사이에 줄 바꿈으로 그들을 결합 할 수 있습니다, 그것은 보일 수 있습니다 비트 미친,하지만 그것은 하나의 자리, 다음에 소수점을 찾습니다. 다음은 비 탐욕적 인 일치를합니다. 다음에 오는 것이 공백을두고 다른 숫자 기간 콤보 또는 문자열의 끝일 때 멈 춥니 다.
분할에 대한 규칙/근거는 무엇입니까? –
숫자를 기반으로 문자열을 다시 포맷해야합니다. – lucyh