정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.
\d : digit을 의미함, 숫자를 포함한다.
. \d+를 사용하면 연결된 숫자를 포함한다.
010-1234-5678 => 010, 1234, 5678
\w : word를 의미함, 문자/숫자를 포함한다.
. a, b, c, 가, 나, 다, 1, 2
. 특수문자는 포함하지 않지만, _(언더스코어)는 포함한다.
* 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
]
?는 있거나 없는 것을 의미한다.
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까지 반복한다"는 의미이다.
출처: 프로그래머스