【정규 표현】후 읽기 선독의 해설과 구별 방법
소개
개인적인 이해를 위한 아웃풋 기사가 되기 때문에, 설명 부족이나 보다 좋은 이해의 방법이 있을지도 모릅니다만, 이해해 주시면 감사하겠습니다.
독자 대상
정규 표현 후 읽기 읽기가 다소 어렵다고 느끼는 분
후읽기 읽는 것은 원래 무엇입니까? 느끼는 분
운영 환경
본 기사의 정규 표현은 이하의 환경에서 동작 확인하고 있습니다.
・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
Reference
이 문제에 관하여(【정규 표현】후 읽기 선독의 해설과 구별 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaino5454/items/472238cb8dbeba866a00텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)