1
아래 정규식은 # 문자로 시작하지 않는 줄과 일치해야합니다. 정규식과 새 줄이 일치하지 않습니다.
^[^#].*
그러나 그 다음 줄을 일치 전에 버퍼가 빈 줄이 포함 된 경우는 #로 시작하는 경우에도
. 다음과 같은 입력에 대한그것은 당신이 이런 식으로 문제를 해결할 수
This line is matched as expected
# this line should not be matched, but it does if the above line is empty !?
주, 질문의 요약 오해의 소지가있다. 이맥스 매뉴얼 (정규 표현식) :'. ' (마침표)는 개행 **을 제외한 모든 단일 문자 **에 일치하는 특수 문자입니다. Sniffer의 대답은 실제 문제가 무엇인지 알려줍니다. – Tobias
소스 코드 파일의 주석을 건너 뛰려면 다른 방법이 있습니다. 특히'(eq (구문 -ppss- 문맥 (구문 -ppss)) '주석)'은 그러한 경우를위한 당신의 친구입니다. 이 양식이 true로 평가되면 검색 결과를 건너 뛸 수 있습니다 (예 : 발견 된 일치 항목을 악용하지 않고 계속 검색). – Tobias
정규 표현식'^ [^ #]. *'은 위험 할 수 있습니다. 텍스트 파일에 regexp 엔진 내부에서 오버 플로우가 발생할 수있는 매우 긴 행이있는 경우. 또한 검색 속도를 크게 저하시킬 수 있습니다. '? #'로 시작하지 않는 다음 줄을 찾아서 실제로 찾던 정규 표현식 ('. *')을 사용하지 않고 줄 끝까지 검색을 제한하는 것이 더 좋습니다. – Tobias