필드 정규화 규칙의 정규 표현식 및 패턴

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기2분
  • 필드 변환 정의는 문자열에서 문자의 위치를 결정하기 위해 정규 표현식(플랫폼에서 regex라고 함) 및 패턴 일치의 사용을 지원합니다.

    대상 문자를 식별한 후 필드 변환은 식별된 문자를 교체 또는 삭제하거나 해당 위치에 다른 문자를 삽입할 수 있습니다.

    정규 표현식

    형식 표현식은 변환 매개변수 및 조건문에서 필드 값에서 변환되는 문자를 판별하는 데 사용될 수 있습니다.

    변환된 필드에서 문자를 찾기 위한 매개변수로 사용되는 정규 표현식 값은 로 시작해야 /regex/합니다. 그 이후의 모든 것은 문자 위치를 계산하는 데 사용되는 정규식입니다.

    예제

    조직 Windows 네트워크의 컴퓨터 이름은 development\devlab01과 같이 도메인\컴퓨터 이름으로 표현됩니다. 네트워크 관리자는 도메인 이름과 백슬래시를 제거하여 이러한 이름을 단순화하려고 합니다. 컴퓨터 [cmdb_ci_computer] 테이블에 대한 변환 기록을 만들고 변환할 이름 필드를 선택합니다.
    그림 1. 변환 정규 표현식 예제
    네트워크에는 여러 도메인이 있으며 각 도메인에는 여러 컴퓨터가 포함되어 있습니다. 각 이름에 공통되는 유일한 문자는 백슬래시입니다. 도메인 이름을 삭제하기 위해 관리자는 정규 표현식을 사용하여 필드의 전체 원시 값을 백슬래시(실제 컴퓨터 이름) 뒤에 나타나는 문자로 바꾸기로 결정합니다. 변환 유형으로 바꾸기를 사용하여 새 변환을 만들고 다음 값을 입력합니다.
    • 찾기:/regex/.*\\(.*)
    • 다음으로 교체:$1
    그림 2. 변환 정규 표현식 예제

    정규식 .*\\(.*)이름 필드의 전체 원시 값(이 예에서는 development\devlab01)을 나타냅니다. 식의 첫 번째 부분인 .*는 백슬래시( 개발 도메인 이름) 앞의 모든 것을 나타냅니다. 백슬래시 자체는 정규식의 이스케이프 문자이며 컴퓨터 이름에서 해당 기능을 유지하려면 특수 구문이 필요합니다. 관리자는 다른 백슬래시(\\는 \를 의미)를 사용하여 이스케이프 해야 합니다. 식에서 백슬래시 뒤의 부분 (.*)은 컴퓨터 이름(devlab01)을 나타내며 참조를 위해 괄호 안에 그룹화됩니다. 바꾸기 필드 $1의 값은 이 그룹을 참조하고 필드의 전체 원시 값을 devlab01 그룹의 내용으로 바꿉니다.

    관리자는 변환 레코드에서 변환 테스트를 클릭하고 원시 데이터 필드에 development\devlab01을 입력합니다. 그런 다음 확인을 클릭하여 테스트 값에 변환을 적용합니다. 변환은 development\devlab01devlab01로 바꿉니다.
    그림 3. 변환 정규 표현식 3

    이 필드에 대한 변환이 성공적으로 테스트되면 관리자는 변환 레코드의 모드를활성 으로 변경하고 변환 애플리케이션 데이터 작업을 실행하여 이 변환을 데이터베이스의 기존 레코드에 적용합니다.