js 정규 표현 식 학습 노트 일치 문자열

오늘 5 장 몇 개의 예 를 보고 약간의 수확 이 있 었 고,기록 해서 회고 로 삼 아 공유 로 삼 았 다.
일치 하 는 문자열 문제 에 대해 서 는 여러 가지 유형 이 있 습 니 다.오늘 은 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 ,\
\' \'';


일치 성공.

좋은 웹페이지 즐겨찾기