코드 줄 수 를 통계 하 는 작은 기교

4184 단어 잔재주
코드 줄 수 를 통계 하 는 작은 기교
원문 주소: http://zhouhua.github.io/2013/06/20/skills/
프로젝트 에서 우 리 는 코드 줄 수 를 통계 하 는 수요 가 있 지만 제3자 도 구 를 이용 하지 않 으 면 하나의 프로젝트 (심지어 하나의 프로젝트 나 해결 방안 중의 몇 가지 프로젝트) 에서 수백 수천 에 달 하 는 코드 파일 에 직면 하 는 것 은 정말 힘 에 부 치 는 느낌 이다.
우 리 는 가장 간단 한 방법 으로 이런 중요 하지만 미세한 수 요 를 완성 할 수 있 기 를 기대한다.다음은 제 가 여러분 께 제3자 도 구 를 빌 릴 필요 가 없고 복잡 한 조작 이 필요 없고 인공 통계 로 계산 할 필요 가 없 는 방법 으로 이 문 제 를 해결 하 는 것 을 소개 하 겠 습 니 다.
통계 코드 줄 수
우리 가 사용 하 는 도 구 는 다른 것 이 아니 라 모든 IDE (Visual Studio, Eclipse 등) 와 자주 사용 하 는 텍스트 편집기 (Sublime Text 2, Notepad + 등) 의 일상 필수 소프트웨어 인 '파일 에서 찾기' 입 니 다. 소프트웨어 마다 약간 다 르 지만 대동소이 합 니 다.
아무리 복잡 한 IDE 라 도 검색 기능 은 문자열 의 일치 에 따라 이 루어 집 니 다.우 리 는 텍스트 에서 매번 줄 을 바 꿀 때마다 하 나 를 추가 한 다 는 것 을 안다. 
 ,그래서 '' 가 나타 난 횟수 로 텍스트 의 줄 수 를 추측 할 수 있다.우 리 는 '파일 에서 검색' 입력 상자 에 만 입력 해 야 합 니 다. 
 ,검색 범 위 를 선택 하고 검색 을 클릭 하면 해당 패 널 에 일치 하 는 결 과 를 표시 합 니 다.우 리 는 일치 하 는 항목 에 관심 을 갖 지 않 고 맨 뒤의 통계 데 이 터 를 직접 볼 필요 가 없다.우 리 는 다음 과 같은 것 을 볼 수 있다.  xxx xxx   매 매 칭 항목 마다 줄 이 바 뀌 는 것 을 대표 합 니 다.그러나 주의해 야 할 것 은 파일 의 마지막 줄 에 줄 바 꿈 문자 가 없 기 때문에 텍스트 줄 수 = 파일 수 + 줄 바 꿈 문자 수 를 더 해 야 텍스트 줄 수 입 니 다.
그림 0: 검색 

좀 귀 찮 지 않 아 요?또 연산 을 해 야 한다. 이런 방법 은 우리 가 원 하 는 것 이 아니다!그러나 서 두 르 지 마 세 요. "파일 에서 찾기" 입 니 다. "정규 표현 식" 옵션 을 선택 하 십시오. 정규 표현 식 으로 바 꾸 겠 습 니 다.방금 의 효과 에 도달 하려 면, 우 리 는 매우 간단하게 검색 할 수 있다.  ^  혹은  $  。정규 표현 식 에서  ^  행수  $  줄 의 끝 을 나타 내기 때문에 이런 조 회 는 모두 몇 개의 줄 이나 줄 의 끝, 즉 코드 줄 의 수 를 찾 을 수 있다.
 
 
그림 1: 검색  ^
 
 
그림 2: 검색  $
 
 
더욱 엄밀 하고 다음 글 의 진일보 한 탐색 을 위해 서 여기 서 우 리 는 검색 합 니 다.  ^.*$  ,검색 조건 은 줄 의 첫머리 와 줄 의 끝 사이 에 임의의 문 자 를 포함 하 는 것 을 나타 낸다.  .  줄 바 꿈 자 를 제외 한 모든 문 자 를 표시 합 니 다.  .*  에서  .  。
그림 0: 검색  ^.*$
본 고 는 정규 표현 식 의 용법 을 설명 하 는 데 중점 을 두 지 않 고 정규 표현 식 의 문법 에 의문 이 있 으 면 다른 참고 자 료 를 읽 으 십시오.
코드 줄 수 를 통계 하고 빈 줄 을 제거 합 니 다.
위의 방법 은 코드 줄 수 를 신속하게 얻 을 수 있 지만 안 타 깝 게 도 통계 결 과 는 빈 줄 (빈 칸 과 탭 문자 만 포함 하 는 줄) 도 통계 에 넣 었 습 니 다. 그러나 우 리 는 이 텍스트 들 을 코드 량 에 계산 하고 싶 지 않 을 때 가 많 습 니 다. 어떻게 해 야 합 니까?서 두 르 지 마 세 요. 우 리 는 정규 표현 식 을 조금 만 수정 하면 됩 니 다.내 생각 은 빈 칸 이나 탭 문자 가 아 닌 문자 만 찾 으 면 된다 는 것 이다. 그래서 나 는 이 정규 표현 식 을 썼 다.  ^[ \t]*[^ \t
\r]+.*$
 ,이것 은 먼저 한 줄 앞의 연속 빈 칸 과 탭 문 자 를 무시 한 다음 에 빈 칸, 탭 문자, 줄 바 꿈 문자 와 리 턴 문자 가 없 는 지 찾 고 있 으 면 이 줄 이 빈 줄 이 아니 라 는 것 을 나타 낸다.여기까지 쓸 수 있 습 니 다 ^[ \t]*[^ \t
\r]+
 ,이 정규 도 일 할 수 있 지만, 나 는 한 줄 을 완전 하 게 쓰 는 습관 이 있다.
아마도 유사 한 것 을 쓰 는 사람 이 있 을 것 이다  ^\s*\S+.*$  혹은  ^:b*[^:b]+.*$  이러한 정규, 그러나 나의 테스트 를 통 해 많 든 적 든 호환성 문제 가 존재 하 는데 주로 두 가지 문제 가 존재 한다.
  • \s  이 가능 하 다, ~ 할 수 있다,...  \r  ,그렇게  ^\s*  빈 줄 과 일치 할 때 뒤의 텍스트 줄 을 관통 할 수 있 습 니 다. 한 줄 이 비어 있 지 않 을 때 까지 이 방법 은 텍스트 내부 의 빈 줄 을 배제 할 수 없습니다.
  • :b  이런 표기 법 은 모든 정규 해석 기 가 식별 할 수 있 는 것 이 아니 므 로 사용 하 는 것 을 권장 하지 않 는 다.Visual Studio 2012 도 이러한 문법 을 버 리 고  [ \t]  。

  • 그림 0: 검색  ^[ \t]*[^ \t
    \r]+.*$

    코드 줄 수 를 통계 하고 빈 줄 과 주석 줄 을 제거 합 니 다.
    실제 프로젝트 에서 우 리 는 주석 행 이 생산량 이 되 어 서 는 안 되 고 통계 데이터 에서 제외 해 야 한다 고 생각 할 지도 모른다.이 문 제 는 훨씬 까다 로 운 것 같다.하지만 걱정 마 세 요. 정규 표현 식 만 잘 활용 하면 이 문 제 는 쉽게 해결 할 수 있 습 니 다.
    우 리 는 우선 주석 줄 에 대해 인식 을 가 질 수 있어 야 한다.많은 프로 그래 밍 언어 에서 주석 줄 은 '/' 또는 '\ #' 등 문자 로 시작한다.우 리 는 프로젝트 의 주석 줄 이 모두 '/' 또는 '\ #' 로 시작한다 고 가정 합 니 다. (독자 가 자신의 프로젝트 의 특징 을 고려 하여 스스로 수정 하 십시오) 그러면 우리 가 찾 아야 할 것 은 한 줄 에서 첫 번 째 비 어 있 는 문 자 는 '/' 와 '\ #' 의 줄 이 아 닙 니 다.이전 절 과 유사 하 게 우 리 는 쓸 수 있다.  ^[ \t]*[^ \t
    \r/#]+.*$
     。마찬가지 로 더 좋 은 호환성 을 위해 서 나 는 사용 을 피한다 \s 화해시키다  :b  。
    그림 0: 검색  ^[ \t]*?[^ \t
    \r/#]+?.*$
     ,이곳 의  ?  꼭 필요 한 게 아니 라
    본 고 는 가장 간단 한 도구 로 복잡 해 보 이 는 기능 을 실현 하고 힘 을 절약 하 며 효율 적 인 사 고 를 소개 하 는 데 목적 을 둔다.더 좋 고 더 좋 은 아이디어 가 있 을 지도 모 르 니 나 와 나 누 는 것 을 환영 합 니 다.

    좋은 웹페이지 즐겨찾기