Perl 정규 표현 식 일치 계수

최근 실험 을 할 때 이러한 수요 에 부 딪 혔 다.­u­ment 의 TF­quen­cy)perl 의 완성 을 통 해 구조 정규 표현 식 이 일치 하 는 것 을 자 연 스 럽 게 생각 합 니 다.현재 찾 을 수 있 는 일치 계수 방식 은 여러 가지 가 있 습 니 다.
가정 $string 은 통계 가 필요 한 문자열 이 고 $regex 은 일치 하 는 정규 표현 식 입 니 다.
프로젝트 1:

#method 1:
my $count = 0;
$count++ while ($string =~ m/$regex/g);

기본 값 은 첫 번 째 일치 만 되 돌아 오 는 것 을 고려 하여 /$regex/ 마지막 으로 가입 /g 해 야 합 니 다.
프로젝트 2:

#method 2:
my $count = ($string =~ s/$regex/$regex/g);

여기 서 자체 교 체 를 통 해 최종 교체 횟수 를 얻 는 것 도 일치 계수 와 같다.
프로젝트 3:

#method 3:
$count = () = $string =~ /$regex/g;

여기에 작은 trick 이 있 습 니 다. $string =~ /$regex/g 는 모든 일치 하 는 scalar 변 수 를 포함 하 는 (1 차원 배열 로 이해 할 수 있 습 니 다) 를 되 돌려 줍 니 다. () 을 통 해 익명 의 scalar 변 수 를 구성 한 다음 에 일반 변수 로 전환 합 니 다. perl 은 이러한 전환 결과 에 대해 scalar 의 길이, 즉 일치 계수 로 똑 같이 목적 을 달성 합 니 다.
이에 비해 방안 은 가장 직관 적 이 고 두 줄 의 코드 를 사용 한 것 이 단점 이다.방안 3 은 가장 은밀 하지만 perl 프로그래머 들 이 가장 환영 하 는 terse style 이다.처음 입문 할 때 는 방안 이 더 좋다 고 생각 하지만 나중에 방안 3 이 더 좋다 는 것 을 알 게 될 것 이다.이것 도 외부 에서 perl 을 가장 어색 한 언어 로 평가 하 는 이유 일 것 이다.

좋은 웹페이지 즐겨찾기