[칼럼] 정규 표현식의 예독법/후독법은 아무리 생각해도 이름이 좋지 않으니 금지령을 내리고 쉽게 검색이라고 불러주세요.
6020 단어 regex
---추기: 2017/06/04
논평에서 지적이 나왔다.
이 글의 해석에는 착오가 있다.댓글에 적힌 내용을 보실 수 있다면 다행입니다.
이 기사의 취지로'선독·후독'보다는'헤드찾기'가 뜻을 이해하기 쉽겠죠?그렇긴 한데...원래 나는'lookahead'의 해석(특히 look의 주어가 어느 부분)에 대해 오해를 했다.
따라서 현재 이 기사의 주제는'먼저 읽기'도,'헤드 찾기'도, 다 가능하지만 엄밀히 이해하라!(반성)다.
댓글 정말 감사합니다!
---
결론을 먼저 쓰다 (?=a)
와 같은 정규 표현식은 일반적으로'예독법'이라고 불린다.
하지만 이러지 마세요. 영어권에 나오는 대로.
마찬가지로'후독'
(?<=a)
이란뜻을 잘 알기 때문에.
(이 단계에서 룩=보기, abhead=앞, behind=뒤! 전혀 모를 경우 본 주장과는 전혀 다를 수 있다.)
예컨대
/b(?=a)/
이것은 헤드폰을 끼는 것이다. 앞을 봐라.그래서 "a 앞에 b 봐요."반면
/(?<=a)b/
이것은 '전망차', '뒤를 돌아보다' 다.그래서 "a 뒤에 b 봐요."그냥, 쉬운 말이지?
뭘 먼저 읽어요?뜻이 이해하기 어렵다.
나는 처음'선독'/'후독'을 만났을 때의 정경을 회상했다.나의 경우b(?=a)
라는 기호가 배열되기 전에先読み / 後読み
라는 단어를 만났다./b(?=a)/
이것은先読み
이라고 부른다.b전에 이야기를 읽는다는 인상을 준다.이것은 백 걸음 물러서서 사람들로 하여금 신복하게 할 수 있다.우선 a를 찾고 그 전에 b가 있는지 확인해야 한다.(나중에야 이 절차가 가짜라는 것을 발견했다.)
그럼 이거 어때요?/(?<=a)b/
이것은後読み
이라고 부른다.그러니까...먼저 b를 읽은 다음에 읽을까요?음...네.어떻게 된 거야?조금, 선독과 후독이 뒤죽박죽이어서 잘 모르겠다.예를 들어 /b(?=a)c/
이것은 a가 먼저 읽는다는 뜻입니까?
...
그랬던 걸로 알고 있습니다.
그리고 부정의 선독, 부정의 후독, 심지어 부정의 후독, 긍정의 선독 등은 우리로 하여금 어떤 신이 악작극을 하고 있다는 것만 느끼게 하고 이해하지 못하게 한다.
타이밍이 문제가 아니에요.
네.선독, 후독이라고 하면 항상'선독, 후독'의 시기가 다르다고 느낀다.'앞을 봐','뒤를 봐'라면'위치만 표시한다'고 명시했다.
자주 소개한 바와 같이 이것은 정착된 동반자일 것이다.^
와 $
는 같은 동반자다.
'최전','마지막'과 마찬가지로'a의 전','a의 후'다.그냥 그래요.
실제로 타이밍을 봐요. /(?<=A)B/
생각해보니까KABCD
이런 문자열은 일치한다. 어떤 순서로 평가되는지 살펴보자.
Ref. https://regex101.com/
B를 읽고 A를 찾는 게 아니라간단하게 말하면, 나는 (오류 63:<=A) 를 찾고, B가 뒤에 있는지 확인하고 있다.
간단합니다.
이어폰을 끼는 것도 마찬가지다.
미리 읽은 것이 아니다(´63;=A).A 앞에 B가 있는지 확인합니다.타이밍으로 B를 평가해 그 뒤에 A가 있는지 확인하는 게 일반적이다.
타이밍이 중요해요.
공연과 직결되기 때문이다.
이 칼럼은 상세하게 설명할 수는 없지만 절차를 이해하거나 느끼는 것이 중요하다.
그리고 이런 추세를 느끼면 부정계(䚏63:|33;a) 등의 응용을 쉽게 이해할 수 있을 거라고 생각합니다.
ref. 정규 표현식 연기의 이야기...
사례를 생각해 보겠습니다.
섭곡 씨는 6시에 시부야역에서 모이세요.시부야씨가 생각나서 급히 시부야로 갔어요.
이 글에는'섭곡'이라는 인물이 등장했다.하지만 실제로는'전중'이라는 이름이다.
/b(?=a)/
/(?<=a)b/
네.선독, 후독이라고 하면 항상'선독, 후독'의 시기가 다르다고 느낀다.'앞을 봐','뒤를 봐'라면'위치만 표시한다'고 명시했다.
자주 소개한 바와 같이 이것은 정착된 동반자일 것이다.
^
와 $
는 같은 동반자다.'최전','마지막'과 마찬가지로'a의 전','a의 후'다.그냥 그래요.
실제로 타이밍을 봐요. /(?<=A)B/
생각해보니까KABCD
이런 문자열은 일치한다. 어떤 순서로 평가되는지 살펴보자.
Ref. https://regex101.com/
B를 읽고 A를 찾는 게 아니라간단하게 말하면, 나는 (오류 63:<=A) 를 찾고, B가 뒤에 있는지 확인하고 있다.
간단합니다.
이어폰을 끼는 것도 마찬가지다.
미리 읽은 것이 아니다(´63;=A).A 앞에 B가 있는지 확인합니다.타이밍으로 B를 평가해 그 뒤에 A가 있는지 확인하는 게 일반적이다.
타이밍이 중요해요.
공연과 직결되기 때문이다.
이 칼럼은 상세하게 설명할 수는 없지만 절차를 이해하거나 느끼는 것이 중요하다.
그리고 이런 추세를 느끼면 부정계(䚏63:|33;a) 등의 응용을 쉽게 이해할 수 있을 거라고 생각합니다.
ref. 정규 표현식 연기의 이야기...
사례를 생각해 보겠습니다.
섭곡 씨는 6시에 시부야역에서 모이세요.시부야씨가 생각나서 급히 시부야로 갔어요.
이 글에는'섭곡'이라는 인물이 등장했다.하지만 실제로는'전중'이라는 이름이다.
/(?<=A)B/
공연과 직결되기 때문이다.
이 칼럼은 상세하게 설명할 수는 없지만 절차를 이해하거나 느끼는 것이 중요하다.
그리고 이런 추세를 느끼면 부정계(䚏63:|33;a) 등의 응용을 쉽게 이해할 수 있을 거라고 생각합니다.
ref. 정규 표현식 연기의 이야기...
사례를 생각해 보겠습니다.
섭곡 씨는 6시에 시부야역에서 모이세요.시부야씨가 생각나서 급히 시부야로 갔어요.
이 글에는'섭곡'이라는 인물이 등장했다.하지만 실제로는'전중'이라는 이름이다.
루비의 샘플
pry > str = "「渋谷様は 6:00 に渋谷駅に集合してください。」と言われていたことを思い出した渋谷さんは、急いで渋谷に向かった。"
pry > str.gsub(/渋谷(?=さん|様)/, '田中')
=> "「田中様は 6:00 に渋谷駅に集合してください。」と言われていたことを思い出した田中さんは、急いで渋谷に向かった。"
아무래도 옷차림과 원양복을 쉽게 입을 수 있을 것 같다. (사례를 생각하기는 어렵고 졸렬한 문장은 옳지 않다.)
마지막으로 소극적인 의상을 소개합니다~
독법이야, 뭐든지 다 돼.
/b(?!a)/
a 이외의 앞에는 b가 있습니까?이렇게 확인해.유동성적으로 b를 찾아 그 뒤에 a가 있는지 확인한다.그래서 흔히 볼 수 있는'시작은 hoge 이외'의 조건은 절차상 먼저 시작을 잡고 뒤에서 hoge 이외의 사람이 오는가?그렇습니다.
/^(?!hoge)/
그러니까 이렇게 되면'어디에도 hoge가 포함되지 않는다'는 조건은 이해할 수 있다.
/^(?!.*hoge)/
총결산
기호
독법
(?=a)
헤드 찾기(lookahed)
(?<=a)
파노라마 찾기
(?!a)
부정적 검색 헤드
(?보이지 않는 찾기
'묶음머리','묶음머리'라고 부르면 이름이 몸을 뜻하는 것처럼 느껴질 수 있다.
먼저 읽고 나중에 이 호칭을 읽는 것을 금지하지 않습니까?(웃음)
감사합니다.
Reference
이 문제에 관하여([칼럼] 정규 표현식의 예독법/후독법은 아무리 생각해도 이름이 좋지 않으니 금지령을 내리고 쉽게 검색이라고 불러주세요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mochizukikotaro/items/84f3ab2740b8efbe0dc6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)