정규 표현 식 g, m 매개 변수 에 대한 정 리 는 '정규 표현 식 (/ [^ 0 - 9] / g,') 의 '/ g' 이 무슨 뜻 입 니까? '
4093 단어 정규 표현 식
var regx=/user\d/;
var str=“user18dsdfuser2dsfsd”;
var rs=regx.exec(str);// rs {user1}
var rs2=regx.exec(str);// rs {user1}
만약 regx = / user \ d / g;rs 의 값 은 {user 1} 이 고, rs2 의 값 은 {user 2} 입 니 다. 이 예 를 통 해 설명 합 니 다. exec 방법 에 대해 표현 식 은 g 를 추 가 했 습 니 다. exec 방법 을 실행 하면 모든 일치 하 는 것 을 되 돌 릴 수 있 는 것 이 아니 라 g 를 추가 한 후에 저 는 어떤 방식 으로 모든 일치 하 는 것 을 얻 을 수 있 습 니 다. 이 '방식' 은 exec 에 있어 서 순서대로 이 방법 을 실행 하면 됩 니 다.2) 표현 식 대상 의 test 방법 에 대해 g 를 넣 는 것 과 g 를 넣 지 않 는 것 은 별 차이 가 없다.3) String 대상 의 match 방법 에 대해 g 를 추가 하지 않 고 첫 번 째 일치 만 되 돌려 줍 니 다. match 방법 을 계속 실행 하면 항상 첫 번 째 일치 로 돌아 갑 니 다. g 를 추가 하면 한 번 에 모든 일치 로 돌아 갑 니 다. (표현 식 대상 의 exec 방법 과 달리 exec 에 있어 서 표 달 식 은 g 를 추가 하 더 라 도 한 번 에 모든 일치 로 돌아 가지 않 습 니 다)예 를 들 면:
var regx=/user\d/;
var str=“user1sdfsffuser2dfsdf”;
var rs=str.match(regx);// rs {user1}
var rs2=str.match(regx);// rs {user1}
regx = / user \ d / g 이면 rs 의 값 은 {user 1, user 2} 이 고 rs2 의 값 도 {user 1, user 2} 4) String 대상 의 replace 방법 에 대해 표현 식 은 g 를 추가 하지 않 으 면 첫 번 째 일치 만 바 꾸 고 g 를 추가 하면 모든 일치 만 바 꿉 니 다.(시작 하 는 세 개의 테스트 문 제 는 이 점 을 잘 설명 할 수 있다) 5) String 대상 의 split 방법 에 g 를 추가 하 는 것 과 g 를 추가 하지 않 는 것 은 같다. 즉,:
var sep=/user\d/;
var array=“user1dfsfuser2dfsf”.split(sep);
array 의 값 은 {dfsf, dfsf} 입 니 다. 이때 sep = / user \ d / g 이 고 반환 값 은 같 습 니 다.6) String 대상 의 search 방법 에 g 를 넣 든 말 든 마찬가지 입 니 다.요약 2: 추가 매개 변수 m 의 용법 추가 매개 변수 m 는 여러 줄 의 매 칭 을 할 수 있 음 을 나타 낸다. 그러나 이것 은 ^ 와 $모드 를 사용 할 때 만 작용 한다. 다른 모드 에서 m 를 추가 하지 않 아 도 여러 줄 의 매 칭 을 할 수 있다.
var regx=/^b./g;
var str=“bd76 dfsdf
sdfsdfs dffs
b76dsf sdfsdf”;
var rs=str.match(regx);
이 때 g 를 추가 하 는 것 과 g 를 추가 하지 않 는 것 은 첫 번 째 일치 {bd} 만 되 돌려 줍 니 다. regx = / ^ b. / gm 이면 모든 일치 {bd, b7} 을 되 돌려 줍 니 다. regx = / ^ b. / m 이면 첫 번 째 일치 만 되 돌려 줍 니 다.따라서 m 를 넣 으 면 여러 줄 의 매 칭 을 할 수 있 음 을 나타 내 고 g 를 넣 으 면 전체 매 칭 을 할 수 있 음 을 나타 낸다. 종합 하면 여러 줄 의 전체 매 칭 을 할 수 있다. 2) 다른 모델 을 사용 하 는 예 이다. 예 를 들 어
var regx=/user\d/;
var str=“sdfsfsdfsdf
sdfsuser3 dffs
b76dsf user6”;
var rs=str.match(regx);
이 때 인자 g 를 추가 하지 않 으 면 {user 3} 을 되 돌려 주 고, 인자 g 를 추가 하면 {user 3, user 6} 을 되 돌려 주 며, m 를 추가 하지 않 으 면 영향 을 주지 않 습 니 다.3) 따라서 m 에 대해 우 리 는 그것 의 사용 을 잘 알 아야 한다. 이것 은 ^ 와 $모드 에 만 작용 한 다 는 것 을 기억 해 야 한다. 이 두 가지 모드 에서 m 의 역할 은 m 를 넣 지 않 으 면 첫 줄 에서 만 일치 할 수 있 고 m 를 넣 으 면 모든 줄 에서 일치 할 수 있다.우 리 는 ^ 의 예 를 하나 더 보 자.
var regx=/^b./;
var str=“ret76 dfsdf
bjfsdfs dffs
b76dsf sdfsdf”;
var rs=str.match(regx);
이 때 rs 의 값 은 null 입 니 다. g 를 넣 으 면 rs 의 값 은 null 입 니 다. m 를 넣 으 면 rs 의 값 은 {bj} 입 니 다.(m 만 추가 하고 g 설명 을 추가 하지 않 으 면 여러 줄 로 일치 할 수 있 지만 일치 하 는 것 을 찾 으 면 되 돌아 갑 니 다. g 를 추가 하면 여러 줄 의 일치 하 는 것 을 되 돌려 줍 니 다. 물론 match 방법 에 대해 서 는 이 렇 습 니 다. exec 에 대해 서 는 여러 번 실행 해 야 순서대로 되 돌아 갈 수 있 습 니 다) 요약 3: HTML textarea 입력 필드 에서 Enter 키 를 누 르 면 해당 하 는 제어 문 자 는 '\ r' 입 니 다. 즉,'차 를 갈 아 타 는 것' 은 '\ r' 가 아니 라 '차 를 갈 아 타 는 것' 이다. 우 리 는 앞에서 우리 가 들 었 던 예 를 보 자.
var regx=/a\r
bc/;
var str=“a
bc”;
var rs=regx.exec(str);
결과: 일치 에 성 공 했 습 니 다. rs 의 값 은 {} 입 니 다. 표현 식 이 / a \ rbc / 이면 일치 하지 않 습 니 다. 따라서 일반적인 편집기 에서 'Enter' 키 는 'Enter 줄 바 꾸 기' 가 아니 라 '줄 바 꾸 기' 를 의미 합 니 다. 적어도 textarea 필드 에 서 는 이 렇 습 니 다.
다음으로 이동:http://www.cnblogs.com/shunyao8210/archive/2008/11/13/1332591.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.