입력한 오프셋에서 시작하여 입력 문자열에서 정규식을 검색합니다. 함수가 일치하는 식을 찾으면 문자열을 세 개의 부분 문자열로 분리하고 부분 일치를 출력합니다. 문자열에 발견된 부분 일치를 보기 위해서 함수를 크기 조정합니다.


icon

입력/출력

  • cbool.png 여러 라인? (거짓)

  • cbool.png 대소문자 구분 무시? (거짓)

  • cstr.png 입력 문자열

  • cstr.png 정규식

  • ci32.png 오프셋(0)

  • cerrcodeclst.png 에러 입력

  • istr.png 일치 구문 앞

  • istr.png 전체 일치 구문

  • istr.png 일치 구문 뒤

  • ii32.png 일치 구문 뒤의 오프셋

  • ierrcodeclst.png 에러 출력

  • 노트 [정규식 일치] 함수는 문자열의 Null 문자를 지원하지 않습니다. 이 함수에 연결하는 문자열에 Null 문자를 포함하면, LabVIEW는 에러를 반환하고, 함수 역시 예상치 못한 결과를 반환할 수도 있습니다.

    정규식 지원은 PCRE 라이브러리 패키지에 의해 제공됩니다. PCRE 라이브러리 패키지의 재배포 라이센스에 대한 더 자세한 정보는 <National Instruments>\_Legal Information 디렉토리를 참조하십시오.

    Perl Compatible Regular Expressions (PCRE)에 대한 더 자세한 정보는 www.pcre.orgPCRE 웹사이트를 참조하십시오.

    [정규식 일치] 함수는 문자열 일치에 더 많은 옵션을 제공하지만 [패턴 일치] 함수보다 느리게 수행됩니다.

    이 함수의 정규식을 사용하여 검색을 상세화합니다.

    스택 오버플로우 방지하기

    반복되는 그룹 식((.|\s)* 또는 (a*)*)을 사용하는 특정 정규식은 큰 입력 문자열에 적용되었을 때 처리에 상당히 많은 리소스를 요구합니다. 몇몇 경우에는 큰 입력 문자열에서 스택 오버플로우가 발생할 수 있습니다. 일부 정규식은 큰 문자열을 일치시키려고 할 때 반복적으로 재귀될 수도 있으며, 결과적으로 이로 인해 스택이 오버플로우될 수 있습니다. 예를 들어 정규식 (.|\n)*A와 큰 입력 문자열을 사용하면 LabVIEW가 충돌할 수도 있습니다. 재귀를 피하려면, 정규식 (.|\n)*A(?s).*A로 다시 작성합니다. (?s) 표기법은 주기가 새로운 라인에 일치함을 나타냅니다. 또한 식을 [^A]*A와 같이 다시 작성할 수도 있습니다.

    패턴을 그룹화하여 부분 일치 찾기

    함수가 부분 일치로 반환할 정규식 부분에 괄호 ( )를 쳐서 부분 일치를 찾을 수 있습니다. 예를 들어 정규식 (el.)..(L..)은 입력 문자열 Hello LabVIEW!에서 다음과 같은 부분 일치 두 개를 반환합니다: ell, Lab 각 부분 일치 구문은 정규식에서 문자 그룹이 나타나는 순서대로 문자 그룹에 대응합니다. 이 예에서, 부분 일치 1ell이고, 부분 일치 2Lab입니다.

    다른 문자 그룹 안에 문자 그룹을 넣으면, 정규식은 안의 그룹보다 밖의 그룹의 부분 일치 구문을 먼저 생성합니다. 예를 들어 정규식 (.(el.).).(L..)은 입력 문자열 Hello LabVIEW!에서 다음과 같은 부분 일치 구문 세 개를 반환합니다: Hello, ell, Lab 이 예에서, 정규식이 안쪽 문자 그룹보다 바깥쪽 그룹을 먼저 일치시키기 때문에 부분 일치 구문 1Hello입니다.

    정규식 예

    다음 테이블은 [정규식 일치] 함수와 함께 사용할 수 있는 정규식의 예를 보여줍니다.

    검색할 문자정규식
    VOLTSVOLTS
    더하기 부호 또는 빼기 부호[+-]
    하나 또는 그 이상 자릿수의 시퀀스[0-9]+
    제로 또는 그 이상의 스페이스\s* 또는 * (즉, 별표 앞의 스페이스)
    하나 또는 그 이상의 스페이스, 탭, 새 라인 또는 캐리지 리턴[\t \r \n \s]+
    숫자 이외의 하나 또는 그 이상의 문자[^0-9]+
    문자열의 시작에 나타나는 경우 단어는 레벨^레벨
    문자열의 끝에 나타나는 경우 단어는 볼트볼트$
    괄호 안에서 가장 긴 문자열\(.*\)
    괄호안에서 가장 처음이고 안에 괄호를 포함하지 않는 문자열\([^()]*\)
    왼쪽 대괄호\[
    오른쪽 대괄호\]
    cat, cag, cot, cog, dat, dag, dotdog[cd][ao][tg]
    cat 또는 dogcat|dog
    dog, cat dog, cat cat dog,cat cat cat dog, 등((cat )*dog)
    하나 또는 그 이상의 문자 a, 스페이스, 같은 개수의 문자 a, 즉 a a, aa aa, aaa aaa(a+) \1