[TIL] regex-정규표현식(1)

link717·2021년 2월 11일
1

TIL

목록 보기
31/53
post-thumbnail

🌼Regular Expression

정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.

  • \d : digit을 의미함, 숫자를 포함한다.
    . \d+를 사용하면 연결된 숫자를 포함한다.
    010-1234-5678 => 010, 1234, 5678

  • \w : word를 의미함, 문자/숫자를 포함한다.
    . a, b, c, 가, 나, 다, 1, 2
    . 특수문자는 포함하지 않지만, _(언더스코어)는 포함한다.

  • 0개 이상: * 0번 이상 반복된다를 의미한다.
// 정규 표현식으로 자연수 찾기
// [1-9]\d*: 1~9로 구성된[1-9] 0번 이상 반복되는(*) 숫자

const str = "Luke Skywarker 02-123-4567 luke@daum.net";
const regex = /[1-9]\d*/;

regex.exec(str);

[
  '2',
  index: 16,
  input: 'Luke Skywarker 02-123-4567 luke@daum.net',
  groups: undefined
]
  • 있거나 없거나: ?는 있거나 없는 것을 의미한다.
    . 2개 이상의 조건이 있거나 없거나를 표현할 때는 [조건1 조건2]?로 표현할 수 있다. ex) \d+[- ]?\d+[- ]?\d+ : -과 공백이 있거나 없거나를 의미한다.
// -를 포함하거나 포함하지 않는 전화번호 양식 찾기

const str = "Luke Skywarker 02-123-4567 luke@daum.net";
const regex = /\d+-?\d+-?\d+/;

regex.exec(str);

[
  '02-123-4567',
  index: 15,
  input: 'Luke Skywarker 02-123-4567 luke@daum.net',
  groups: undefined
]
  • {숫자}: 숫자가 n번 반복되는 숫자를 포함한다. ex) \d{2} : 숫자가 연속 두 번 나온다를 의미한다.
    . {숫자1, 숫자2}는 "숫자 1부터 숫자 2까지 반복한다"는 의미이다.

    출처: 프로그래머스

profile
Turtle Never stop

0개의 댓글