[VI, VIM] 정규식에서 non-greedy 하게 검색하기 (욕심부리지 않기)


VI의 정규식이 펄이나 파이썬 등의 정규식과 크게 다른 점 중 하나는 non-greedy (욕심부리지 않기) 연산자입니다. 대부분의 경우 물음표 기호가 사용되는데 VI에서는 \{-}가 사용됩니다. 예를 들면 다음과 같습니다.


:%s/hello.\{-}://g


라고 하면 hello에서 가장 가까이 있는 : 까지만 사라지게 됩니다. 펄이나 파이썬이었으면 .? 이런 식으로 사용했을 거라, 지레짐작으로 VI에서 열심히 \? 를 시도해보다가 시행착오를 엄청 했습니다.

[펄 (Perl)] 배열에 특정 값이 있는지 검사하기


~~ 연산자를 사용하면 배열에 특정 값이 있는지를 쉽게 검사할 수 있습니다.

단 펄 버전 5.10 ('오 점 일영'이 아니라 '오 점 십' 버전입니다) 이상에서만 사용 가능합니다.

코드는 다음과 같습니다.


#!/usr/bin/perl

use 5.012;

use strict;

use warnings;


my @array;

my $check = 3;


if($check ~~ @array) { say "$check is found!!"; }


물론 위 코드의 경우 @array가 비어있는 배열이므로 "$check is found!!"가 출력되지 않을 것입니다.


+ Recent posts