자 바스 크 립 트 의 끼 워 넣 기 바 꾸 기(강력 한 정규)

1625 단어 모자이크 교체
네티즌 wys 질문:자바 스 크 립 트 가 지원 하 는 정규 문법 만 어떻게 사용 합 니까?이 문 제 를 생각 하 는 어 려 운 점 중 하 나 는 자 바스 크 립 트 가 지원 하 는 정규 특성 이 한계 가 있다 는 점 이다.건물 주 는 이미 비 JavaScript 의 해법 을 생각 했다.다음 과 같다
 
<p>
<table> <p> <p> </table>
<table> <p> <p> </table>
<p>
응,생각 은 대체로 이렇다.사실 자바 스 크 립 트 가 역 주 행 을 지원 하 더 라 도 위의 답 은 원 하 는 대로 실행 되 지 않 습 니 다.그 이 유 는 양사 가 있 는 역순 환 시(즉(?<=)안에서 사용?,*,+,{}이러한 양사)는 더욱 고 급 스 러 운 문법 으로 지원 할 수 있 는 언어 가 극히 적다(특례 는.Net).그러나 건물 주 와 같은 정규 문 제 는 매우 보편적 인 문제 일 것 이다.우 리 는 항상 순환 적 으로 내용 을 교체 해 야 한다.어떻게 풀 어야 하나 요?자 바스 크 립 트 의 문 서 를 읽 자마자 나 는lastIndex이런 것 을 찾 았 다.이 동쪽 에 따라 나 는 이런 생각 을 형성 했다.•먼저 외층 순환 에 따라 첫 번 째 조 의 비교적 큰 매 칭 을 찾 았 다.정규 코드 는]*>[\s\S]*?<\/table>•이번 일치 가 끝 난 시작 위 치 를 찾 아 이 문자열 의 모든

를 교체 합 니 다.순환 실행.저 는 상기 사고 가 대체적으로 뚜렷 하 다 고 생각 합 니 다.그러나 디 테 일이 너무 많 습 니 다.특히 중요 한 것 은 고수 의 Hack 이 아 닌 원시 적 인 Crack 처럼 생각 하 는 것 이다.그리고 생각 과 정규 의 관 계 는 크 지 않다.나 는 길 을 바 꾸 기로 결정 했다.사고의 두 번 째 관건 은 순환 과 내장 이다.그래.도 몽 공간의 심층 귀환 이 야.일치 하 는 내용 을 보호 하고 교체 한 후에 제자리 에 놓 을 수 있 습 니까?여기까지 생각 하 니 탁 트 였 다.사고:먼저 모든 일치 하 는 내용 을 찾 아 배열 inner 에 기록 합 니 다.이 정규 를 사용 하여 원본 문자열 split 를 다른 배열 wrapper 로 합 니 다.하나의 중요 한 특징 은 wrapper 가 반드시 inner 보다 하나의 요 소 를 더 많이 가지 고 inner 항목 을 일일이 분리 시 키 고 가장 바깥쪽 에 있다 는 것 이다.wrapper 와 inner 의 관 계 는 한 손바닥 의 다섯 손가락 과 네 손가락 사이 의 관계 와 같다.중간의 원 소 를 꺼 내 위 치 를 기록 하고 처리 가 끝 난 후에 모든 원 소 를 한데 붙인다.이렇게 간단 해.코드 는 다음 과 같다.댓 글 에 있 는 이 코드 를 보 세 요.형식 은 댓 글 부분의 그림 보기 입 니 다.협조 해 주 셔 서 감사합니다!

좋은 웹페이지 즐겨찾기