정규표현식의 최소일cl (non-greedy match) (Linux)
2015-10-14 12:18 - swindler
보통 정규표현식을 사용할때
.*| 이렇게 표현을 하는데,
. : 아무 문자
* : 아무갯수
즉 아무문자뒤에 | 나오는 곳을 가리키게 되는데,
한줄에 여러개의 |가 나오는 경우 제일 뒤까지 찾게 된다.
근데 보통 첫번째 나오는곳까지 찾아야 하는 경우가 있는데, 이것이 최소일치이다.
vi에서는
^.\{-}| 과 같이 찾는다.
즉, \{-} 이 최소일치이다.
앞에 ^가 없으면 줄 처음부터 찾지 않으니까 원하지 않는 결과가 나타난다.
.*| 이렇게 표현을 하는데,
. : 아무 문자
* : 아무갯수
즉 아무문자뒤에 | 나오는 곳을 가리키게 되는데,
한줄에 여러개의 |가 나오는 경우 제일 뒤까지 찾게 된다.
근데 보통 첫번째 나오는곳까지 찾아야 하는 경우가 있는데, 이것이 최소일치이다.
vi에서는
^.\{-}| 과 같이 찾는다.
즉, \{-} 이 최소일치이다.
앞에 ^가 없으면 줄 처음부터 찾지 않으니까 원하지 않는 결과가 나타난다.
.* -> .*? (최소일치)