정규식(RegEx) 기초

  • Basic Use

  • Find Many String
  • Using Match
  • Using Match All

  • How To Set Case Insensitive
  • Find All Capital Letters
  • How To Find Digits In A String
  • Using Replace Function
  • Using Search And Exec Function
  • Use of test function
  • Give Me Coffee

  • 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
    



    커피 주세요



    이렇게 포스팅을 작성합니다.
    저에게 돈을 주고 싶으시면 기꺼이 받겠습니다 😁👍.
  • Ko-Fi
  • Buy Me Coffee

  • 내 최신 개인 프로젝트를 확인하십시오.
    Believers Sword App

    나를 따르라:

    Facebook

    좋은 웹페이지 즐겨찾기