소개
이 문서에서는 정규식(regex)의 작동 방식과 expressway 서버에서 정규식을 테스트하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- VCS(Video Communications Server) 및 Expressway 서버
- 텔레프레즌스 장치
- B2B(Business to Business) 통화
- 협업 구축
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
정규식은 텍스트에서 문자열을 확인하는 데 사용되는 패턴을 정의하는 문자 시퀀스입니다. 그런 다음 검색 규칙 또는 변환에서 이러한 문자열을 수정하거나 유지할 수 있으며, 이는 정규식에 가장 많이 사용됩니다.
정규식 유형
기본 식
- 점(.)은 모든 단일 문자와 일치합니다.
- 숫자(\d) 단일 10진수와 일치합니다.
- 별표(*)는 이전 문자 또는 식을 0회 이상 반복하는 것과 일치합니다.
- 더하기 기호(+)는 이전 문자 또는 식의 반복 횟수에 1회 이상 일치합니다.
- 물음표(?)는 이전 문자나 식의 0 또는 1 반복과 일치합니다.
- 중괄호 {n} 이전 문자나 식의 n 반복과 일치합니다. 예를 들어 (\d{3})은(는) 3자리 문자열과 일치합니다.
- 중괄호 범위 {n,m} 이전 문자나 식의 n에서 m까지의 반복에 일치합니다. 예를 들어 (\d{3,5})은(는) 3, 4 또는 5자리 문자열과 일치합니다.
- 대괄호 [...] 지정된 문자 집합과 일치합니다. 이는 개별적으로 또는 범위로 지정할 수 있습니다. 예를 들어 [abc]는 a, b 또는 c 문자와 일치합니다.
- 범위를 지정하려면 범위의 시작과 끝 사이에 하이픈(-) 문자를 사용합니다. 예를 들어 [a-z]는 모든 알파벳 문자와 일치합니다.
- 여는 대괄호 뒤에 캐럿(^)을 사용하면 일치 항목이 반전됩니다. 예를 들어 [^a-z]는 영문자가 아닌 모든 문자와 일치합니다.
- 괄호(...) 일치하는 문자 집합을 그룹화합니다. 이러한 그룹은 대체 문자열의 일부로 \n 문자를 사용하여 순서대로 참조할 수 있습니다.
- 파이프(|)는 하나 또는 대체 식과 일치합니다. 예를 들어 (com|net)은 com 또는 net 문자열과 일치합니다.
기타 식
- (?!...) 이것은 앞으로의 부정적인 전망입니다. 존재하지 않아야 하는 하위 식을 정의합니다.
- %localdomains% 서버에 현재 구성된 모든 SIP 도메인과 일치합니다.
패턴 생성 및 테스트
Expressway 서버는 구성을 변경하지 않고 패턴을 테스트할 수 있는 도구를 제공하여 새 항목을 만들 때 발생할 수 있는 비즈니스 영향을 방지합니다.
이 도구는 Expressway 서버의 웹 인터페이스에서 Maintenance(유지 관리) > Tools(도구) > Check Pattern(패턴 확인)으로 이동할 수 있습니다.
체크 패턴 도구
- 별칭: 테스트할 문자열이며, 대상 또는 등록 URI(Uniform Resource Identifier)일 수 있습니다. 이 문자열을 패턴 문자열과 비교하여 일치 여부를 테스트합니다.
- 패턴 유형: 이 설정은 패턴을 검사할 때 패턴 문자열을 처리하는 방법을 결정합니다. Regex가 가장 일반적으로 사용됩니다.
- Exact: 전체 문자열이 문자의 별칭 문자와 정확히 일치해야 합니다.
- 접두사: 문자열은 별칭의 시작 부분에 나타나야 합니다.
- 접미사: 문자열은 별칭의 끝에 나타나야 합니다.
- Regex: 문자열이 정규식으로 처리됩니다.
- 패턴 문자열: 별칭이 비교되는 패턴입니다.
- 패턴 동작: 패턴 일치에서 실행되는 동작입니다. 수정을 실행할 경우 새 텍스트 상자가 활성화되어 수정을 지정할 수 있습니다.
- Strip: 별칭에서 일치하는 접두사 또는 접미사를 제거합니다. 패턴 유형이 접두사 또는 접미사로 설정된 경우에만 사용할 수 있습니다.
- 나가기: 별칭에 수정 사항이 적용되지 않습니다.
- 바꾸기: 별칭의 일치하는 부분을 바꾸기 문자열의 텍스트로 바꿉니다.
- Add Prefix(접두사 추가): 별칭에 추가 텍스트를 추가합니다.
- 접미사 추가: 별칭에 추가 텍스트를 추가합니다.
일반적으로 사용되는 Regex 예
모두 일치 와일드카드
이 패턴은 특정 패턴 일치가 필요하지 않지만 검색 규칙 또는 변환을 고려해야 하는 경우, 정규식(.*)이 형식 또는 길이에 관계없이 모든 입력과 일치하는 경우에 널리 사용됩니다. 점은 모든 문자와 일치하며, 별표는 해당 표현식의 반복 횟수에 상관없이 적용됩니다.
Match Everything 와일드카드 예 1
별칭 입력과 상관없이 동일한 패턴이 성공합니다.
Match Everything 와일드카드 예 2
로컬 및 비로컬 도메인 일치
이 방법은 일반적으로 패턴을 서버에 구성된 로컬 도메인 중 하나의 대상과 일치시키고 통화를 인터넷으로 라우팅하는 대신 로컬로 라우팅된 상태로 유지하는 데 사용됩니다. regex %localdomains%를 접미사 또는 regex 패턴의 두 번째 부분으로 사용할 수 있습니다.
로컬 도메인을 구성하려면 Configuration(컨피그레이션) > Domains(도메인)로 이동합니다.
로컬로 구성된 도메인
로컬로 구성된 도메인이 아닌 다른 도메인에 대해서는 패턴 일치가 실패합니다.
로컬 도메인 일치 실패
그리고 로컬로 구성된 모든 도메인에 성공합니다.
로컬 도메인 일치 성공
이 패턴보다 앞에 있는 부정적인 모습(?!.*@%localdomains%)을 반대의 결과에 사용할 수도 있습니다. 즉, 로컬 도메인이 아닌 모든 별칭이 성공적으로 일치합니다.
로컬 도메인에 대한 부정적인 전망
다른 도메인 확장 일치
이 패턴은 회사가 여러 내선 번호가 있는 도메인을 소유하고 둘 중 하나를 호출할 수 있는 경우 일반적으로 사용되지만, 통화 관리를 위해서는 검색 규칙을 고려하기 전에 이러한 내선 번호를 표준화해야 합니다.
일반적으로 파이프(|) 정규식을 사용한 변환을 통해 수행됩니다.
다른 도메인 확장 예 1
동일한 패턴은 두 개의 도메인 확장 중 하나를 사용하는 도메인과 일치하지만 결과로 선택된 표준화된 확장으로 변환합니다.
다른 도메인 확장 예 2
요금 사기 패턴 일치
유료 사기 전화의 공통점은 전화 건 숫자의 양에 있습니다. 국제 전화에서는 국가 코드 다음에 전화 번호가 와야 합니다. 그러면 이러한 전화의 숫자가 7자리 이상이 됩니다. 회사 내 내부 다이얼 플랜의 길이가 4~6자리 정도인 것도 일반적입니다.
이렇게 하면 이러한 유형의 통화 중 하나에 대해 서로 다른 작업을 수행하는 데 사용할 수 있는 분명한 차이가 생성됩니다. 숫자 카운트 regex를 사용하여 각 통화에 대해 수행할 작업을 지정할 수 있습니다.
숫자 개수 예 1
이 패턴은 7자리에서 15자리 사이의 별칭에만 일치합니다. 숫자가 적으면 일치가 되지 않습니다.
숫자 개수 예 2
숫자 이외의 다른 문자도 실패합니다.
숫자 개수 예 3
그룹 및 참조 패턴
그룹 및 참조는 regex 패턴과 함께 사용하여 별칭의 일부 섹션을 수정하는 동시에 나머지는 보존합니다. 이 기능은 접두사를 추가 또는 제거하거나 도메인을 수정할 때 유용합니다. 그룹은 패턴 문자열 섹션에서 지정되며 참조는 대체 문자열 필드에서 순서대로 수행됩니다.
그룹 및 참조 예 1
이 예에서는 @cisco.com과 리터럴 일치가 있으며 testuri 문자열이 match all regex에 의해 일치되고 그룹화됩니다.
replace 문자열의 \1 참조는 패턴 문자열 내의 첫 번째 그룹을 다시 호출합니다. 이 그룹은 URI의 종류에 관계없이 URI에 연결되므로 URI는 결과 별칭에서 보존됩니다.
도메인은 대체된 문자열에서 참조되지 않으며 internaldomain으로 대체됩니다. 결과 별칭에서 확인할 수 있습니다.
유연한 다이얼 플랜이 허용되므로 그룹을 사용하여 URI를 재정렬할 수도 있습니다.
그룹 및 참조 예 2
이 예제에는 5자리 형식의 별칭이 있으며 그 뒤에 점과 다른 숫자가 오고 그 뒤에 도메인이 옵니다.
패턴 문자열에는 각각 분석할 수 있는 다른 그룹과 섹션이 있습니다.
- 그룹 1의 패턴(\d{5})은 문자열의 시작 부분에서 5자리 숫자와 일치합니다.
- 정규식(\.)은 리터럴 점과 일치합니다. 즉, 원래 별칭에는 5개의 초기 숫자 뒤에 점이 있어야 합니다.
- 그룹 2에서는 패턴(\d)이 단일 숫자와 일치합니다.
- 그룹 3, 리터럴 패턴(@cisco.com)은 해당 문자 시퀀스에만 일치합니다. 여러 도메인을 포함하도록 수정하거나 이전 일치 뒤에 문자열을 추가할 수 있습니다.
별칭이 패턴 문자열과 일치하면 대체 문자열로 대체됩니다.
대체 문자열은 이전 그룹을 새 순서로 참조합니다.
- 참조 \2는 그룹 2를 다시 호출하며, 이는 점 뒤와 도메인 앞에 있는 단일 숫자입니다.
- 참조 \1은 그룹 1을 호출하며 별칭의 처음 5자리입니다.
- 참조 \3은 그룹 3을 다시 호출하며, 별칭의 도메인 섹션입니다.
- 점은 참조되지 않으며 그룹의 일부도 아니므로 결과 별칭에 포함되지 않습니다.
그러면 별칭은 원래 별칭과 동일한 숫자를 가져오지만 별칭의 시작 부분에서 점 뒤에 있던 숫자를 사용합니다.
5자리 숫자와 1자리 숫자를 분리한 점은 더 이상 별칭의 일부가 아니며 도메인이 유지됩니다.
모든 그룹을 참조할 필요는 없으며, 참조되지 않는 그룹은 결과 별칭에 포함되지 않습니다.
관련 정보
Cisco 기술 지원 및 다운로드