정규식(RegEx) 기초
Find Many String
JavaScript에서 정규식(RegEx)은 검색 패턴을 정의하는 데 사용되는 일련의 문자를 설명하는 개체입니다.
이 게시물에서는 정규 표현식에 대한 몇 가지 기본 사항을 살펴보겠습니다. 정규식을 사용하면 문자열에서 패턴을 쉽게 찾을 수 있습니다.
기본 사용 - 문자열에서 'apple'이라는 단어를 찾아봅시다.
const text = "This is an apple";
const regex = /apple/;
const result = text.match(regex)
console.log(result)
/**
output:
[
0: "apple"
groups: undefined
index: 11
input: "this is an apple"
length: 1
]
*/
많은 문자열 찾기
이전 예제를 사용하고 정규식에 전역 옵션을 추가하려고 했습니다. 이것은 모든 발생의 배열을 생성합니다. 대소문자를 구분합니다.
일치 사용
const text = 'this is an apple and another apple or APPLe';
const regex = /apple/g;
console.log(text.match(regex));
/**
Output:
['apple', 'apple']
*/
모두 일치 사용
const text = 'this is an apple and another apple or APPLe';
const regex = /apple/g;
console.log([...text.match(regex)]);
/**
Output:
[
0: ['apple', index: 11, input: 'this is an apple and another apple or APPLe', groups: undefined]
1: ['apple', index: 29, input: 'this is an apple and another apple or APPLe', groups: undefined]
]
*/
대소문자를 구분하지 않도록 설정하는 방법
패턴이 대소문자를 구분하지 않도록 수정자에
i
옵션을 추가할 것입니다.const text = 'this is an apple and another apple or APPLe';
const regex = /apple/gi;
console.log([...text.matchAll(regex)])
/**
[
0: ['apple', index: 11, input: 'this is an apple and another apple or APPLe', groups: undefined]
1: ['apple', index: 29, input: 'this is an apple and another apple or APPLe', groups: undefined]
2: ['APPLe', index: 38, input: 'this is an apple and another apple or APPLe', groups: undefined]
]
*/
모든 대문자 찾기
const text = 'Make Arnold Reverse the Video about Eternal Latency';
const regex = /[A-Z]/g; // we still need to use the global option
console.log(text.match(regex))
/**
Output:
['M', 'A', 'R', 'V', 'E', 'L']
*/
문자
M
를 무시하도록 정규식을 설정할 수도 있습니다.const text = 'Make Arnold Reverse the Video about Eternal Latency';
const regex = /(?![M])[A-Z]/g;
console.log(text.match(regex));
/**
Output:
['A', 'R', 'V', 'E', 'L']
*/
문자열에서 숫자를 찾는 방법
const text = 'We have a sugar of 200g, a lemon of 1kg and 1000kg of water.';
const regex = /\d/g; // using \d to match any digit
console.log(text.match(regex));
/**
Output:
['2', '0', '0', '1', '1', '0', '0', '0']
*/
+
옵션을 사용하여 전체 번호를 가져옵니다.const text = 'We have a sugar of 200g, a lemon of 1kg and 1000kg of water.';
const regex = /\d+/g; // using \d+ find full number
console.log(text.match(regex));
/**
Output:
['200', '1', '1000']
*/
교체 기능 사용
우리는 항목을 찾아 교체할 것입니다. 이 예에서는 대문자를 찾아 @로 바꿉니다.
const text = 'I have 1 item.';
const regex = /\d/g; // using \d+ find full number
console.log(text.replace(regex, '@'));
/**
Output:
I have @ item.
*/
기타 샘플:
// replace all capital letters
const result = "This is A New Item".replace(/[A-Z]/g, '@');
console.log(result); // @his is @ @ew @tem
// replace full numbers
const result = "This is A 200kg New Item with 0% capacity".replace(/\d+/g, '@');
console.log(result); // This is A @kg New Item with @% capacity
// replace all letter a
const result = "This is A 200kg New Item with 0% capacity".replace(/[a]/gi, '@');
console.log(result); // This is @ 200kg New Item with 0% c@p@city
검색 및 실행 기능 사용
검색은 첫 번째 일치 항목의 위치
index
를 제공합니다.const result = "We are the World".search(/the/g);
console.log(result); // 7
반면 Exec은 일치와 비슷하지만 루프에서 사용되는 목적이 있습니다. 캡처 배열 또는 null을 반환합니다.
const text = "We are the people of the world";
const regex = /the/g;
let arr;
while ((arr = regex.exec(text)) !== null) {
console.log(`Found ${arr[0]} in index ${arr.index}.`)
}
/**
Output:
Found the in index 7.
Found the in index 21.
*/
테스트 기능 사용
test
검색된 문자열에 패턴이 있는지 여부를 나타내는 부울 값을 반환합니다.이메일 주소를 확인하는 예(복잡한 정규식이지만 여기서 핵심은 테스트 기능을 사용하는 방법입니다):
const regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
console.log(regex.test('[email protected]')); // false
console.log(regex.test('[email protected]')); // true
다른 예:
const text = "This is just a text";
console.log(/a/.test(text)); // true - because a exist on the text
console.log(/\d/.test(text)); // false - because no digits found
console.log(/[A-Z]/.test(text)); // true - because theres a capital letter
console.log(/A/i.test(text)); // true - because letter a/A exist on the text
커피 주세요
이렇게 포스팅을 작성합니다.
저에게 돈을 주고 싶으시면 기꺼이 받겠습니다 😁👍.
내 최신 개인 프로젝트를 확인하십시오.
Believers Sword App
나를 따르라:
Reference
이 문제에 관하여(정규식(RegEx) 기초), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/brojenuel/regular-expressionsregex-basics-5gcj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)