r의 정규 표현식에서 \\s|*
과 \\s|[*]
의 차이점은 무엇입니까?r의 정규 표현식에서`\ s | *`와`\ s | [*]`의 차이점은 무엇입니까?
> gsub('\\s|*','','Aug 2013*')
[1] "Aug2013*"
> gsub('\\s|[*]','','Aug 2013*')
[1] "Aug2013"
여기서 [ ]
의 기능은 무엇입니까?
r의 정규 표현식에서 \\s|*
과 \\s|[*]
의 차이점은 무엇입니까?r의 정규 표현식에서`\ s | *`와`\ s | [*]`의 차이점은 무엇입니까?
> gsub('\\s|*','','Aug 2013*')
[1] "Aug2013*"
> gsub('\\s|[*]','','Aug 2013*')
[1] "Aug2013"
여기서 [ ]
의 기능은 무엇입니까?
첫 번째 표현은 당신이 그것을 사용하는 방법으로 무효에 해당합니다. 이런 식으로 sub
또는 gsub
을 특수 문자와 함께 사용하려면 fixed = TRUE
매개 변수 세트를 사용할 수 있습니다.
검색 할 패턴을 나타내는 문자열을 그대로 사용하고 은의 모든 특수 문자를 무시합니다.
R
설명서의 Pattern Matching and Replacement
을 참조하십시오.
x <- 'Aug 2013****'
gsub('*', '', x, fixed=TRUE)
#[1] "Aug 2013"
두 번째 표현은, 이스케이프와 같은을 피하기 위해 *
에 대한 문자 클래스 []
을 사용하고 있습니다 ..
x <- 'Aug 2013*'
gsub('\\s|\\*', '', x)
#[1] "Aug2013"
을 지금까지 첫 번째 식의 설명으로 : \\s|*
\s whitespace (\n, \r, \t, \f, and " ")
| OR
두 번째 표현식은 \\s|[*]
\s whitespace (\n, \r, \t, \f, and " ")
| OR
[*] any character of: '*'
여기서 []
을 사용하면 *
을 문자 그대로 별표로 이스케이프하는 것 외에는 아무 것도 없습니다.
첫 번째 정규식이 유효하지 않습니다 (*
은 "0 이상"을 의미하는 특수 문자 임).
두 번째 정규식 따라서 *
는 특수 문자,
'\\s|\\*'
'*'는 정규 표현식의 특수 문자이므로'[] '는 문자의 리터럴 해석을 강제합니다. – joran