>웹 프론트엔드 >JS 튜토리얼 >JS 정규식 문자 일치

JS 정규식 문자 일치

hzc
hzc앞으로
2020-06-09 16:26:544446검색

정규식 문자 매칭

"자바스크립트 정규식 미니북"을 읽고 정리한 메모입니다.

정규식은 문자와 위치를 일치시킬 수 있는 일치 패턴입니다.

다음은 캐릭터 매칭 상황을 주로 소개하고 있으며, 포지션 매칭 상황도 배우고 있습니다.

두 가지 퍼지 매칭:

1. 수평 퍼지 매칭: 일반 매칭 가능한 문자열의 길이는 고정되어 있지 않습니다. 이를 수행하는 방법은 수량자를 사용하는 것입니다. 예를 들어, {m,n}은 문자가 최소 m회, 최대 n회 연속해서 나타나는 것을 의미합니다.

예를 들어 /ab{2,5}c/는 다음과 같은 문자열 일치를 의미합니다. 첫 번째 문자는 "a"이고 그 다음에는 2~5개의 문자 "b", 마지막으로 문자 "c"가 옵니다.

예: (수동으로 시도해 보고 얻을 결과에 대해 생각해 볼 수 있습니다.)

var regex = /ab{2,5}c/g;
var string = "abc abbc abbbc abbbbc abbbbbc abbbbbbc";
console.log( string.match(regex) );

g는 전역 일치를 의미하는 수식어입니다. 이는 일치 조건을 충족하는 모든 문자열을 문자열에서 순서대로 찾는 것을 의미합니다.

2. 수직 퍼지 일치: 일반 일치 가능 문자열은 특정 문자에만 적용되며 특정 문자일 필요는 없으며 다양한 가능성을 가질 수 있습니다. 구현 방법은 /a[123]b/와 같은 문자 그룹

을 사용하여 이러한 문자열과 일치시키는 것입니다. 첫 번째 문자는 a이고 두 번째 문자는 '1', '2', '3이 될 수 있습니다. '아무거나, 딱 하나만.

정량자(반복)

1. 일반적인 약어 형식:

(1){m,}은 최소 m번 나타남을 의미합니다.

(2){m}은 m번 나타남을 의미합니다

(3)? {0,1}은 표시되거나 표시되지 않음을 의미합니다.

(4)+ {1,}과 동일하면 적어도 한 번 표시됨을 의미합니다.

(5)* {0,}과 동일은 여러 번 표시됨을 의미합니다. , 나타날 필요는 없으며 여러 번 사용할 수도 있습니다

2. 그리디 매칭과 레이지 매칭

(1) 그리디 매칭: /d{2,5}/는 숫자가 2~5번 나타나는 것을 의미합니다.

var regex = /\d{2,5}/g;
var string = "123 1234 12345 123456";
console.log( string.match(regex) );
// => ["123", "1234", "12345", "12345"]

(2) Lazy Match: /d{2,5}?/는 2~5번이면 충분하지만 2번이면 더 이상 시도하지 않는다는 의미입니다. .

var regex = /\d{2,5}?/g;
var string = "123 1234 12345 123456";
console.log( string.match(regex) );
// => ["12", "12", "34", "12", "34", "12", "34", "56"]

JS 정규식 문자 일치

문자그룹

1. 범위 표현:

(1) 약어를 생략하려면 하이픈 "-"를 사용하세요. 예를 들어 [123456abcdefGHIJKLM]은 [1-6a-fG-M]으로 쓸 수 있습니다.

(2) 참고: 일치하는 문자열에 하이픈이 있는 경우 시작이나 끝에 하이픈을 넣거나 이스케이프하세요.

2. 문자 그룹 제외: 예를 들어 [^abc]는 특정 문자가 무엇이든 될 수 있지만 a, b 또는 c는 될 수 없음을 의미합니다. ^ 캐럿은 부정을 나타내며 해당 범위 표현도 있습니다. [^abc]表示某位字符可以是任何东西,但不能是a,b,c。^脱字符表示求反,也有相应的范围表示。

3.常见的简写形式:

(1)d表示[0-9]。是一位数字

(2)D表示[^0-9]。除数字外的任意字符。

(3)w表示 [0-9a-zA-Z_]。数字、大小写字母和下划线。也称单词字符

(4)W表示[^0-9a-zA-Z_]。非单词字符

(5)s表示[ tvnrf]。表示空白符,包括空格、水平制表符、垂直制表符、换行符、回车符、换页符。

(6)S表示[^ tvnrf]。非空白字符

(7). 表示[^nru2028u2029]。通配符,表示几乎任意字符。换行符、回车符、行分隔符和段分隔符除外。

要匹配任意字符,可以使用 [dD][wW] [^] 中任何的一个。

多选分支

一个模式可以实现横向和纵向模糊匹配,多选分支可以支持多个子模式任选其一。

具体形式:(p1|p2|p3

3. 일반적인 약어:

(1) d[0-9]를 의미합니다. 한 자리 숫자입니다

(2) D[^0-9]를 의미합니다. 숫자를 제외한 모든 문자.


(3) w [0-9a-zA-Z_]를 의미합니다. 숫자, 대문자, 소문자, 밑줄. 단어 문자라고도 합니다

(4) W[^0-9a-zA-Z_]를 의미합니다. 단어가 아닌 문자

(5) s[tvnrf]를 의미합니다. 공백, 가로 탭, 세로 탭, 줄 바꿈, 캐리지 리턴 및 폼 피드를 포함한 공백 문자를 나타냅니다. (6) S[^tvnrf]를 의미합니다. 공백이 아닌 문자

🎜 (7) .[^nru2028u2029]를 의미합니다. 거의 모든 문자를 나타내는 와일드카드 문자입니다. 줄 바꿈, 캐리지 리턴, 줄 구분 기호 및 단락 구분 기호는 예외입니다. 🎜🎜모든 문자를 일치시키려면 [dD], [wW], 및 [^] 아무거나. 🎜🎜다중 선택 분기🎜🎜A 모드는 수평 및 수직 퍼지 매칭을 달성할 수 있으며 다중 선택 분기는 여러 하위 모드 중 하나를 지원할 수 있습니다. 🎜🎜특정 형식: (p1|p2|p3) p1, p2, p3은 하위 모드입니다. 🎜🎜다음 문제를 주의 깊게 살펴보시기 바랍니다. 🎜
var regex = /good|goodbye/g;
var string = "goodbye";
console.log( string.match(regex) );
🎜위 예제에서 얻은 결과는 "good"입니다🎜
var regex = /goodbye|good/g;
var string = "goodbye";
console.log( string.match(regex) );
🎜이 예제에서 얻은 결과는 "goodbye"입니다.🎜🎜🎜브랜치 구조도 게으르다는 결론에 도달했습니다. 일치하면 다음은 더 이상 시도하지 않습니다. 🎜🎜추천 튜토리얼: "🎜JS Tutorial🎜"🎜

위 내용은 JS 정규식 문자 일치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:js 기본 지식다음 기사:js 기본 지식