수색…


소개

이 문서는 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


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow