regexall 함수

regexall 함수

regexall정규 표현식을 문자열에 적용하고, 모든 일치 항목을 담은 리스트를 반환하는 함수예요.

출처: 문서

본문

regexall(pattern, string)

regexallregex의 변형이며, 동일한 패턴 문법을 사용해요. regex에 주어지는 어떤 입력에 대해서도 regexallregex가 반환할 타입의 리스트를 돌려주는데, 일치 항목마다 요소 하나씩을 담아요. 즉:

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

regexall은 또한 특정 문자열이 주어진 패턴과 일치하는지 검사할 때도 쓸 수 있어요. 그 경우 결과 일치 항목 리스트의 길이가 0보다 큰지 확인하면 돼요.

예제

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

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

> length(regexall("[a-z]+", "123456789")) > 0
false

더 알아보기 (Learn more)

  • regex — 주어진 패턴의 단일 일치 항목을 찾고, 일치하는 항목이 없으면 오류를 반환해요.
  • 테라폼이 이미 분석하려는 문법을 처리하는 더 특화된 함수를 제공한다면 그 함수를 우선 사용하는 게 좋아요. 정규 표현식은 읽기 어렵고 의도를 흐리게 만들 수 있어서, 설정을 읽고 이해하기 어렵게 만드는 요인이 되거든요.