수색…


비고

술어

캐럿 (^) 문자는 다음 용어로도 참조됩니다.

  • 모자
  • 제어
  • 업로 우드
  • 쉐브론
  • 곡절 악센트

용법

정규식에는 두 가지 용도가 있습니다.

  • 행의 시작을 나타 내기 위해
  • 대괄호 ( [^ ) 바로 뒤에 사용하면 허용되는 문자 집합을 무효화합니다 (즉, [123] 은 문자 1, 2 또는 3이 허용됨을 의미하고 [^123] 은 1 이외의 문자를 의미합니다 , 2 또는 3이 허용됩니다.

문자 이스케이프

특수한 의미가없는 캐럿을 표현하려면 캐럿 앞에 백 슬래시를 붙여서 이스케이프해야합니다. ie \^ .

라인의 시작

때 멀티 라인 (?m) 수정이 꺼져 ^ 단지 입력 문자열의 시작과 일치 :

정규식의 경우

^He

다음 입력 문자열은 다음과 일치합니다.

  • Hedgehog\nFirst line\nLast line
  • Help me, please
  • He

다음 입력 문자열이 일치하지 않습니다 .

  • First line\nHedgehog\nLast line
  • IHedgehog
  • Hedgehog (공백 때문에) )

여러 줄 때 (?m) 수정이 켜져, ^ 모든 라인의 시작과 일치 :

^He

위는 He 시작하는 행을 포함하는 입력 문자열과 일치합니다.

줄 바꿈 문자로 \n 을 고려하면 다음 줄이 일치합니다.

  • Hello
  • First line\nHedgehog\nLast line (두 번째 줄만)
  • My\nText\nIs\nHere (마지막 행만)

다음 입력 문자열이 일치하지 않습니다 .

  • Camden Hells Brewery
  • Helmet (공백 때문에 )

^ 사용하여 빈 줄 일치 ^

캐럿의 다른 일반적인 사용 예는 빈 행 (또는 여러 줄 수정자가 꺼져있는 경우 빈 문자열)을 일치시키는 것입니다.

빈 줄 (multi-line on )과 일치시키기 위해 줄 끝의 위치를 ​​나타내는 다른 앵커 문자 인 $ 옆에 캐럿이 사용됩니다 ( Anchor Characters : Dollar ($) ). 따라서 다음 정규식은 빈 행과 일치합니다.

 ^$

캐럿 문자를 이스케이프 처리합니다.

문자 클래스 ( 문자 클래스 )에서 ^ 문자를 사용해야하는 경우 클래스의 시작 부분이 아닌 다른 곳에 넣으십시오.

[12^3]

또는 백 슬래시 \ 사용하여 ^ 를 이스케이프 처리하십시오.

[\^123]

문자 클래스 밖에서 캐럿 문자 자체를 일치 시키려면 이스케이프해야합니다.

\^

이렇게하면 ^ 가 문자열 / 줄의 시작 부분을 나타내는 앵커 문자로 해석되는 것을 막을 수 있습니다.

라인 앵커의 비교 시작과 문자열 앵커의 시작

많은 사람들이 ^ 는 문자열의 시작을 의미한다고 생각하지만 실제로 는 행의 시작을 의미 합니다. 문자열 앵커 사용의 실제 시작은 \A 입니다.

문자열 hello\nworld (또는 더 명확하게)

hello
world

정규 표현식 ^h , ^w\Ah 는 일치하지만 \Aw 는 일치하지 않습니다.

다중 행 수정 자

기본적으로 캐럿 ^ 메타 문자는 문자열의 첫 번째 문자 앞에 위치 를 일치시킵니다.

" charsequence "문자열이 /^char/ & /^sequence/ 패턴에 적용되면 엔진은 다음과 같이 일치하려고 시도합니다.

  • /^char/

    • ^ - 광문
    • c - c harsequence
    • 시간 - ch arsequence
    • A - cha rsequence
    • r - char 순서

    경기 결과

  • /^sequence/

    • ^ - 광문
    • s - 광문

    경기를 찾을 수 없음

문자열에 줄 끝 기호 (예 : \r?\n 가 포함되어 있어도 동일한 동작이 적용됩니다. 문자열의 시작 부분에있는 위치 만 일치합니다.

예 :

/^/g

┊char \ r \ n
\ r \ n
순서

당신은 모든 라인 종결 후 일치해야하는 경우에는, 당신은 여러 모드를 설정해야합니다 ( //m , (?m) ) 당신의 패턴 내에서. 이렇게함으로써, 캐럿 ^ 문자열의 시작 위치와 위치 직후의 1 라인에 대응 터미네이터 "각 라인의 시작"와 일치한다.

1 일부 종결 자 (Java, PCRE, ...)에서 줄 끝 기호가 문자열의 마지막 인 경우 줄 끝 기호 뒤에 ^ 가 일치하지 않습니다.

예 :

/^/gm

┊char \ r \ n
┊ \ r \ n
┊ 시퀀스

Multiline 수정자를 지원하는 정규식 엔진 중 일부는 다음과 같습니다.

  • 자바

    Pattern pattern = Pattern.compile("(?m)^abc");
    Pattern pattern = Pattern.compile("^abc", Pattern.MULTILINE);
    
  • .그물

    var abcRegex = new Regex("(?m)^abc");
    var abdRegex = new Regex("^abc", RegexOptions.Multiline)
    
  • PCRE

    /(?m)^abc/
    /^abc/m
    
  • 파이썬 23 (빌트인 re 모듈)

    abc_regex = re.compile("(?m)^abc");
    abc_regex = re.compile("^abc", re.MULTILINE); 
    


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow