regexall 함수

regexall 함수

regexall은 정규 표현식을 문자열에 적용해 모든 매치의 리스트를 반환해요.

출처: Packer 공식 문서

본문

regexall(pattern, string)

regexall은 regex의 변형이며 같은 패턴 문법을 사용해요. regex에 대한 어떤 입력에 대해서도, regexall은 regex가 반환했을 유형의 리스트를 매치마다 하나씩 요소로 해서 반환해요. 즉:

  • 패턴에 캡처 그룹이 전혀 없으면, 결과는 문자열의 리스트예요.
  • 패턴에 이름 없는 캡처 그룹이 하나 이상 있으면, 결과는 리스트의 리스트예요.
  • 패턴에 이름 있는 캡처 그룹이 하나 이상 있으면, 결과는 맵의 리스트예요.

regexall은 결과 매치 리스트의 길이가 0보다 큰지 테스트함으로써, 특정 문자열이 주어진 패턴과 일치하는지 테스트하는 데에도 사용할 수 있어요.

예시 (Examples)

> regexall("[a-z]+", "1234abcd5678efgh9")
[
  "abcd",
  "efgh",
]

> length(regexall("[a-z]+", "1234abcd5678efgh9"))
2

> length(regexall("[a-z]+", "123456789")) > 0
false
  • regex는 주어진 패턴의 단일 매치를 찾고, 매치가 없으면 오류를 반환해요.

파싱하려는 문법을 해석할 더 전문화된 함수가 Packer에 이미 있다면 그 함수를 사용하는 게 좋아요. 정규 표현식은 읽기 어렵고 의도를 흐릴 수 있어서 설정을 읽고 이해하기 어렵게 만들 수 있어요.

더 알아보기 (Learn more)