const str = "apple orange banana apple";

/* 문자열에서
   첫 번째로 일치하는 패턴만 찾아서 배열로 반환합니다. */
const pattern = /apple/;
const result = str.match(pattern);

console.log(result); // 출력: ["apple"]
console.log(result.length); // 출력: 1
console.log(result[0]); // 출력: "apple"

/* 만약 전체 텍스트에서 모든 일치하는 패턴을 찾고 싶다면
   정규 표현식에 g (전역 검색) 플래그를 추가합니다. */
const globalPattern = /apple/g;
const globalResult = str.match(globalPattern);

console.log(globalResult); // 출력: ["apple", "apple"]
console.log(globalResult.length); // 출력: 2
console.log(globalResult[0]); // 출력: "apple"
console.log(globalResult[1]); // 출력: "apple"

/* 특정 패턴의 문자열을 검사하기
   이메일 주소 패턴을 검색 */
const userInfo = "내 이메일 주소는 user@example.com 입니다.";
const searchEmailPattern = /\w+@\w+\.\w+/g;
const searchEmailResult = userInfo.match(searchEmailPattern);

console.log(searchEmailResult); // 출력: ["user@example.com"]
console.log(searchEmailResult.length); // 출력: 1
console.log(searchEmailResult[0]); // 출력: "user@example.com"
str.match(regexp);
const str = "Hello, World!";
const result = str.match();

console.log(result); // 출력: [""]
console.log(result.length); // 출력: 1
const str = "Hello, World!";
const result = str.match("");

console.log(result); // 출력: [""]
console.log(result.length); // 출력: 1
const str = "Hello, World!";
const result = str.match(" ");

console.log(result); // 출력: [" "]
console.log(result.length); // 출력: 1
const str = "apple orange banana apple";
const pattern = /apple/;

const result = str.match(pattern);
console.log(result); // 출력: ["apple"]
console.log(result.length); // 출력: 1
const str = "apple orange banana apple";
const pattern = /apple/g; // <= g (전역 검색) 플래그 추가
const result = str.match(pattern);

console.log(result); // 출력: ["apple", "apple"]
console.log(result[0]);
console.log(result[1]);
console.log(result.length); // 출력: 2
const str = "Hi, World!";
const pattern = /Hello/;
const result = str.match(pattern);

console.log(result); // 출력: null
const text = "문의는 help@example.com 또는 support@example.org 으로 연락 주시기 바랍니다.";

const emailPattern = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g;
const emailMatches = text.match(emailPattern);

console.log(emailMatches);
// 출력: ["help@example.com", "support@example.org"]
const text = "문의는 010-9876-5432 또는 010-9876-5439로 연락 주세요.";

const phonePattern = /\d{3}-\d{4}-\d{4}/g;
const phoneMatches = text.match(phonePattern);

console.log(phoneMatches);
// 출력: ["010-9876-5432", "010-9876-5439"]
const text = "더 많은 정보는 https://www.example.co.kr에서 확인하세요.";

const urlPattern = /\b(?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9-]+(?:\.[a-z]{2,})+(?:\/[^\s]*)?\b/g;
const urlMatches = text.match(urlPattern);

console.log(urlMatches);
// 출력: ["https://www.example.co.kr"]
const html = '<div class="container"><p>Hello, <b>world!</b></p></div>';
const tagPattern = /<[^>]+>/g;
const tags = html.match(tagPattern);

console.log(tags);
// 출력: ["<div class="container">", "<p>", "<b>", "</b></p>", "</div>"]
const css = '.header { color: #333; } .main-content { font-size: 16px; }';
const classPattern = /\.([a-zA-Z-_\d]+)/g;
const classes = css.match(classPattern);

console.log(classes);
// 출력: [".header", ".main-content"]

caniuse.com에서 더 자세한 정보를 확인해 보세요.