R Language
R의 정규 표현식 구문
수색…
소개
이 문서는 R에 사용 된 정규 표현식의 기초를 소개합니다. R의 정규 표현식 구문에 대한 자세한 내용은 ?regex
참조하십시오. 정규 표현식 연산자에 대한 포괄적 인 목록은 정규 표현식에 대한 이 ICU 가이드를 참조하십시오.
`grep`을 사용하여 문자 벡터에서 문자열 찾기
# General syntax:
# grep(<pattern>, <character vector>)
mystring <- c('The number 5',
'The number 8',
'1 is the loneliest number',
'Company, 3 is',
'Git SSH tag is [email protected]',
'My personal site is www.personal.org',
'path/to/my/file')
grep('5', mystring)
# [1] 1
grep('@', mystring)
# [1] 5
grep('number', mystring)
# [1] 1 2 3
x|y
는 "x"또는 "y"를 찾습니다.
grep('5|8', mystring)
# [1] 1 2
grep('com|org', mystring)
# [1] 5 6
.
Regex의 특수 문자입니다. 이는 "모든 문자와 일치"
grep('The number .', mystring)
# [1] 1 2
점을 매치 할 때주의하십시오!
tricky <- c('www.personal.org', 'My friend is a cyborg')
grep('.org', tricky)
# [1] 1 2
리터럴 문자와 일치 시키려면 문자열을 백 슬래시 ( \
)로 이스케이프해야합니다. 그러나 R은 문자열을 만들 때 이스케이프 문자를 찾으므로 실제로는 역 슬래시 자체를 이스케이프 처리해야합니다 (정규 표현식 문자를 두 번 이스케이프 해야 함).
grep('\.org', tricky)
# Error: '\.' is an unrecognized escape in character string starting "'\."
grep('\\.org', tricky)
# [1] 1
여러 문자 중 하나와 일치 시키려면 해당 문자를 대괄호 ( []
)로 묶을 수 있습니다.
grep('[13]', mystring)
# [1] 3 4
grep('[@/]', mystring)
# [1] 5 7
문자 시퀀스를 나타내는 것이 유용 할 수 있습니다. 예를 들어 [0-4]
는 0, 1, 2, 3 또는 4와 일치하고 [AZ]
는 대문자와 일치하고 [Az]
는 대문자 또는 소문자와 일치하며 [A-z0-9]
는 문자 또는 숫자 (즉 모든 영숫자 문자)
grep('[0-4]', mystring)
# [1] 3 4
grep('[A-Z]', mystring)
# [1] 1 2 4 5 6
R에는 대괄호 안에 사용할 수있는 몇 가지 바로 가기 클래스가 있습니다. 예를 들어 [:lower:]
는 az
, [:upper:]
는 AZ
, [:alpha:]
는 Az
, [:digit:]
은 0-9
, [:alnum:]
은 A-z0-9
. 이러한 전체 표현식 은 대괄호 안에 사용해야합니다. 예를 들어 하나의 숫자와 일치 시키려면 [[:digit:]]
사용할 수 있습니다 (이중 대괄호에 유의하십시오). 또 다른 예로 [@[:digit:]/]
는 @
, /
또는 0-9
문자와 일치합니다.
grep('[[:digit:]]', mystring)
# [1] 1 2 3 4
grep('[@[:digit:]/]', mystring)
# [1] 1 2 3 4 5 7
괄호는 캐럿 ( ^
)과 일치하지 않는 경우에도 사용할 수 있습니다. 예를 들어, [^5]
는 "5"이외의 모든 문자와 일치합니다.
grep('The number [^5]', mystring)
# [1] 2