【정규 표현】후 읽기 선독의 해설과 구별 방법

3616 단어 루비regexp정규식

소개



개인적인 이해를 위한 아웃풋 기사가 되기 때문에, 설명 부족이나 보다 좋은 이해의 방법이 있을지도 모릅니다만, 이해해 주시면 감사하겠습니다.

독자 대상



정규 표현 후 읽기 읽기가 다소 어렵다고 느끼는 분
후읽기 읽는 것은 원래 무엇입니까? 느끼는 분

운영 환경



본 기사의 정규 표현은 이하의 환경에서 동작 확인하고 있습니다.
・Ruby

이번에 다루는 4가지 정규식


  • 긍정 후 읽기(?<=abc)
  • 긍정적인 미리 읽기(?=abc)
  • 부정의 후독(?<!abc)
  • 긍정적인 미리 읽기(?!abc)

  • ※abc는 임의의 문자열
    ※abc의 부분에\d등 정규 표현을 넣는 것도 가능합니다만, 이번은 접하지 않습니다.

    이 4개의 이해가 개인적으로 다소 어려웠기 때문에, 기사로 했습니다.

    각각 무엇을 나타내는가



    위의 네 가지 쓰기 방법은 모두 "위치"를 나타냅니다.

    긍정 후 읽기



    '긍정 후 읽기'를 예로 들자면,
    (?<=abc) 는 「"abc"라고 하는 캐릭터 라인과 일치하는 개소의 직후」를 나타내고 있습니다.

    핀 때 했니?
    나는 처음에는 무엇을 몰랐다.

    Rubular라는 정규 표현식을 시험해 볼 수 있는 WEB 앱으로 시험해 보겠습니다.
    htps // 루부 r. 코m/

    다음 예문을 사용합니다.
    三国志には正史と演技があります
    魏、呉、蜀の三国が出てきます
    劉備は三国志の登場人物です。
    

    Your regular expression: 라는 곳에 (?<=三国志) 를 넣어 보겠습니다.

    그러면 다음과 같이
    삼국지라는 문자열 직후에 하늘색 세로 막대기가 와 있습니다.

    이것은 "단어 경계"를 나타냅니다.
    (앵커라고 부르는 것 같습니다. 이후 앵커라고 합니다.)



    이제 위치가 일치했습니다.
    지정한 단어 바로 뒤에 앵커가 오고 있네요.

    그 외 앞서 소개한 3개의 정규 표현도 마찬가지로 단어에 맞추어 위치를 나타냅니다.

    긍정적인 미리 읽기


    (?=abc) 에서 "abc"문자열과 일치하는 위치 바로 앞을 나타냅니다.
    정규 표현은 (?<!三国志) 를 사용해 시험해 보겠습니다.

    Rubular에서 확인하면,
    당신이 알 수 있듯이 지정된 단어 앞에 앵커가옵니다.



    부정적인 후독


    (?<!abc) 는 「"abc"와 일치하지 않는 캐릭터 라인의 직후」를 나타냅니다.
    예문을 조금 바꿔서, 3행째의 삼국지의 「지」를 「시」로 바꾸어 봅니다.
    三国志には正史と演技があります
    魏、呉、蜀の三国が出てきます
    劉備は三国試の登場人物です
    

    정규 표현은 (?<!三国志) 를 사용해 시험해 보겠습니다.



    「삼국지」의 문자와 일치하지 않는 문자열의 직후가 복수개 매치하고 있습니다.

    부정적인 미리 읽기


    (?!abc) 는 「"abc"와 일치하지 않는 캐릭터 라인의 직전」을 나타냅니다.
    예문은 앞서와 같고, 정규 표현은 (?!三国志) 를 사용해 시험해 보겠습니다.



    「삼국지」의 문자와 일치하지 않는 문자열의 직전이 복수개 매치하고 있습니다.

    각 읽기 방법의 특징



    4개의 소개한 정규 표현을 이하에 늘어놓습니다
    ① 긍정 후 읽음 (?<=abc)② 긍정의 미리 읽기 (?=abc)③ 부정 후 읽음 (?<!abc)④ 부정의 미리 읽기 (?!abc)
    각각 비슷한 문장이지만,
    약간의 차이가 있습니다.

    긍정인지 부정인지 구분하는 방법



    이제 알 수 있을지도 모르지만 다음과 같이 구분할 수 있습니다.

    긍정인 경우에 =를 끼워넣는다. 부정이라면 !를 넣는다.
    후독의 경우는 < 를 넣는다. 미리 읽는 경우에 없음.

    이러한 요령으로 구분하면 이해하기 쉽다고 생각합니다.

    참고



    · htps : // 이 m / j 치치 / / ms / b0839f4f4651c29이다 408

    좋은 웹페이지 즐겨찾기