정규표현식???

설하나·2022년 12월 1일
0

TIL

목록 보기
7/11

알고리즘 문제를 풀다보면 다양한 조건의 문자열에서 조작을 해야하는 경우가 많다. 이럴때 마다 정규식을 사용하면 손쉽게 해결할 수 있지만,, 너무나도 어려운 정규식 블로그를 적으면서 차근차근 정리해 나아가보자!

📝 정의

  • 정규 표현식 혹은 정규식이라고 부른다.
  • 특정 문자 조합을 찾기 위한 패턴으로 javascript에서는 정규 표현식을 객체로서 RegExp의 exec()와 test() 메서드를 사용할 수 있다.
  • String객체의 match(),matchAll(),replace(),replaceAll(),search(),split()매서드 사용가능

📝 정규표현식 만들기

  • 정규표현식 리터럴로 만들기, 스크립트 불러올 때 컴파일되므로 바뀔 일이 없는 패턴인 경우 리터를 사용하여 성능을 높일 수 있음.
    const aaa = /ab+c/
  • RegExp객체의 생성자 호출하기, 정규 표현식이 런타임에 컴파일 된다. 바뀔 수 있는 패턴이나 사용자 입력 등 외부 출처에서 가져오는 패턴에 사용.
    const re = new RegExp('ab+c')

📝 정규 표현식 패턴 작성하기

  • x|y : x또는 y와 매칭이 되는 경우
  • [xyz] or [a-c] : 문자 집합. 포함된 문자 중 하나와 일치합니다. 하이픈을 사용하여 문자 범위를 지정할 수 있지만, 하이픈이 대괄호 안에 포함된 첫 번째 또는 마지막 문자로 나타나면 문자 집합에 일반 문자로 포함되도록 리터럴 하이픈으로 간주됩니다. 문자 집합에 문자 클래스를 포함할 수도 있다.
        const aaa = /[^a-bc]/
        "basic".split(aaa) //[ 'ba', '', 'c' ]
        "bacon".match(aaa) //[ 'o', index: 3, input: 'bacon', groups: undefined ]
  • (x) : 캡처 그룹: x와 일치하고 일치된 내용을 기억합니다. 예를 들어 /(foo)/는 "foo bar"의 "foo"와 일치하고 기억합니다.
  • /n:여기서 n은 양의 정수입니다. 정규식에서 괄호(왼쪽 괄호 포함)와 일치하는 마지막 하위 문자열에 대한 역참조입니다. 예를 들어 /apple( , )\sorange\1/는 "apple, orange, cherry, peach"의 "apple, orange"와 일치합니다. 다음 표에 완전한 예가 나와 있습니다.
  • \d : Matches any digit (Arabic numeral). Equivalent to [0-9].
  • \w :Matches any alphanumeric character from the basic Latin alphabet, including the underscore. Equivalent to [A-Za-z0-9_].
  • 수량자 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Quantifiers

📝 정규식 만들어 보기

```jsx
//들어오는 데이터 종류 
//1S2D*3T , 1D2S#10S , 1D2S0T 등...

const dart = /\d{1,2}[SDT]{1}[*|#]?/g;
```

출처

profile
Backend

0개의 댓글