정규 표현 식 성능 최적화 방법(고 효율 정규 표현 식 쓰기)
PCRE library,Perl,PHP,Python,Ruby,sed,vi)는 주로 그의'역 추적'이 고'역 추적'횟수 를 줄 이 는 것(같은 문 자 를 반복 적 으로 찾 는 횟수 를 줄 이 는 것)이 성능 을 향상 시 키 는 주요 한 방법 이다.우 리 는 예 를 보 자.
원본 문자열:
일치 요구,일치
흔히 볼 수 있 는 쓰기(1)는
모두 115 보 를 써 서 48 회 거 슬러 올 라 갔다."."문 자 를 사용 하기 때문에 기본 적 인 상황 에서 제외 한 모든 문 자 를 일치 합 니 다.
방법(2),우리 가 특징 을 분석 한 결과,
정규 표현 식:
19 보,0 차 역 추적!절 차 는 원래 의 15%정도 만 있 고 성능 이 몇 배로 향상 되 었 습 니 다!
위 에서 보 듯 이 정규 표현 식 에 따라 통용 문자 에 대해 평평 하 게 배치 하면 성능 차이 가 매우 크다.'역 추적'을 줄 이 는 것 이 가장 좋 은 방법 이다.역 추적 을 줄 이 는 가장 중요 한 방법 은'최소 범위 의 메타 문 자 를 사용 하고 너무 큰 메타 문 자 를 사용 하지 않도록 하 는 것 이다!'이다.일반 규칙 은 다음 과 같다.
1.올 바른 경계 매 칭 기(^,$,\b,\B 등)를 사용 하여 검색 문자열 의 위 치 를 제한 합 니 다.
2.구체 적 인 메타 문자,문자 클래스(\d,\w,\s 등)를 사용 하고 적 게 사용 합 니 다."문자
3.정확 한 양사 사용(+,*,?,{n,m})길 이 를 제한 할 수 있다 면 최 적 화 됩 니 다.
4.비 포획 그룹,원자 그룹 을 사용 하여 불필요 한 글자 일치 포획 용(?:)을 감소 합 니 다.
예 를 들 어 영어 알파벳 과 일치 하고 싶 습 니 다.그 뒤에 숫자 가 연결 되 어 있 습 니 다.예 를 들 어 abc 1234 는'\w+\d+'라 고 쓸 수도 있 고 쓸 수도 있 습 니 다.'[a-zA-Z]+\d+'라 고 쓸 수도 있 습 니 다.그 중에서 첫 번 째\w+는 모든 abc 1234 와 일치 한 다음 에 거 슬러 올 라 가 만족\d+형식 과 일치 합 니 다.모두 4 보 입 니 다.뒤에 이 건 2 보,절차 가 반 으로 줄 었 습 니 다!자,오늘 은 여기까지 하 겠 습 니 다.여러분 의 토론 과 교 류 를 환영 합 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.