js 정규 표현 식 학습 노트 일치 문자열
일치 하 는 문자열 문제 에 대해 서 는 여러 가지 유형 이 있 습 니 다.오늘 은 js 코드 의 문자열 일치 에 대해 토론 합 니 다.(나 는 배 운 후에 문법 하 이 라이트 연습 가 를 쓰 고 싶 기 때문에 js 코드 를 예 로 들 었 다)
var str1 = " 1 , ", str2 = " 2 , ";
예 를 들 어 이런 문자열 은 일치 하기 가 매우 간단 하 다.4PS:흰색 캡 처 는 chrome 34 콘 솔 에서 실 행 된 결과 이 고 짙 은 회색 은 sublime text 결과 입 니 다.
쉽게 내용 을 찾 을 수 있 지만 친,js 문자열 에서 의 미 를 바 꿀 수 있다 고 생각해 본 적 이 있 습 니까?
var str1 = " 1 ,\" \"", str2 = " 2 ,\" \"";
이것 은 우리 가 원 하 는 결과 가 아니 기 때문에 우 리 는 전의 문 제 를 처리 해 야 한다.전의 의 규칙 은\\뒤에 문자 가 따 르 기 때문에 우 리 는\\.로 그것 과 일치 하면 이러한 정규/(?:\\\.|[^])*"/g정규 에 익숙 하지 않 은 친구 에 게 는 단번에/"[^"]*"/g 에서/"(?:\\\\|[^"])*"/g 후 이해 가 안 돼 요.간단하게 설명해 드릴 게 요.(?:)캡 처 그룹 이 아 닌 경우 내용 캡 처 를 메모리 에 저장 하지 않 습 니 다.\\..\\\\\a 와 같은 전의 문 자 를 일치 시 키 는 데 사용 되 며,일치 에 성공 하면 2 글자 가 소 모 됩 니 다.[^]"을 제외 한 모든 문자 와 일치 합 니 다.일치 하 는 데 성공 하면 1 글자 가 소 모 됩 니 다."그래서 이 표현 식 은 먼저\와 일치 합 니 다.이렇게 전 의 를 하면 성공 하면 정확 한 전 의 를 소모 하고 성공 하지 못 하면[^"]로 일치 합 니 다.
정확 한 전 의 를 소모 한 다 는 뜻 은'aa\\aa\'aa\ufffaa'가 모두 정상 적 인 전의 에 있 기 때 문 입 니 다."aa\\aa\\"aa\ufff\\\"aa"여기\\\"그 중\\\\는 일치 하지만"만족 하지 않 습 니 다\\.만족 하지 않 습 니 다[^"]그래서 이 일치 결 과 는"aa\\aa\ufff\\\"뒤의 aa"와 일치 하지 않 습 니 다.
그래서 지금 우 리 는 비교적 강력 한 정규 를 얻 었 고 js 코드 의 문자열 과 효과적으로 일치 할 수 있 습 니 다.
잠깐 만,또 뭐 가 잘못된 것 같 아.js 문자열 은 이렇게 접 을 수 있 습 니 다.
var str = " \
js";
그런데 이런 문자열 은 아까 의 정규 로 일치 할 수 있 습 니까?답 은 할 수 있다.\\\\.일치 하 지 는 않 지만[^"]와 일치 할 수 있 기 때문에\\뒤의 문 자 는\r 또는\r(구체 적 으로 어떤 줄 바 꿈 자 는 시스템 을 봐 야 합 니까?)와 일치 할 수 있 기 때문에 우 리 는 본의 아니 게 강력 한 표현 식 을 썼 습 니 다.이제 마지막 문제 가 남 았 습 니 다.바로'일치'입 니 다.표현 식/"(?:\\\.|[^"])*"|"(?:\\\.|[^])*"/g 면 됐어.
테스트 해 보 겠 습 니 다.
var str1 = " 1 ,\
\" \"", str2 = ' 2 ,\
\' \'';
일치 성공.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.