티스토리 뷰

반응형

https://songsong.dev/entry/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D-%EA%B3%B5%EB%B6%80%ED%95%98%EA%B8%B0

 

정규표현식 공부하기

STUDY WITH ME! 이상한 부호의 집합체. 필요한 게 있으면 구글에서 검색해서 긁어다 사용하곤 했다. 하지만 내가 사용하기에 딱 맞는 자료는 나오지 않고, 변형해서 사용하려니 머리가 아프다. 보는

songsong.dev

 

해당 글에 좋은 내용이 많이 나와있어 저도 참고하기 위해 링크를 달았습니다 :)

 

정규 표현식 시작은 /로 시작하고 패턴, 플래그로 시작합니다.

CHARACTER
| 또는
() 그룹
[] 문자셋, 괄호 안의 어떤 문자든
[^] 부정문자셋, 괄호 안의 어떤 문자가 아닐 때
(?:) 찾지만 기억하지 않음
/gr(?:e|a)y/

물음표를 넣었을 때에는 그룹이 지정되지 않음.(논 캡쳐링 그룹)
찾지만 기억하지 않을 때라는 표현이 좀 낯설지만 아래서 다시 설명
/gr(a|e|d)y/
/gr[aed]y/

동일
/[abcdef]/
/[a-f]/

동일
/[a-zA-Z0-9]/
위에 나열한 문자만

/[^a-zA-Z0-9]/
위에 나열한 문자를 제외하고

논캡쳐링그룹은 원하는 식을 찾는 조건으로 사용하지만 그 값을 직접 사용하지 않습니다.

 


CHARACTER
? 있거나 없거나 (zero or one)
* 없거나 있거나 많거나 (zero or more)
+ 하나 또는 많이 (one or more)
{n} n번 반복
{min,} 최소
{min, max} 최소, 그리고 최대

* 사실 이 내용을 제일 많이 사용할것 같습니다. ㅎㅎ

/tes?t/ -> test, tet
? : 해당 문자열이 있거나 없는 경우 사용합니다.


/tes*t/ -> test, tet, tesst···
* : 해당 문자열이 있거나 없거나 여러개 존재하는 경우에 사용합니다.


/tes+t/ -> test, tesst···
+ : 해당 문자열이 1개 이상 존재할 때 사용합니다.


/tes{2}t/ -> tesst
{2} : 해당 문자열의 개수를 의미하는 숫자를 괄호안에 넣어줍니다.


/tes{2,}t/ -> tesst, tessst, tesssst ...
{2,} : 해당 문자열이 최소 2개 이상일 때 사용합니다.


/tes{2,3}t/ -> tesst, tessst
{2,3} : 해당 문자열이 최소 2개 이상 3개 이하일 때 사용합니다.

 


CHARACTER
\b 단어 경계
\B 단어 경계가 아님
^ 문장의 시작
$ 문장의 끝
/\bYa/ -> Ya
\b : 단어 앞에서 쓰이는 Ya(띄어쓰기 다음, 줄바꿈 다음)

/Ya\b/ -> Ya
\b : 단어 뒤에서 쓰이는 Ya(띄어쓰기 앞, 줄바꿈 앞)

/\BYa/ -> Ya
\B : 단어 앞에서 쓰이지 않는 Ya(단어 중간, 단어 뒤)

/Ya\B/ -> Ya
\B : 단어 뒤에서 쓰이지 않는 Ya(단어 앞, 단어 중간)
/^Ya/ -> Ya123123
^ : 문장 앞에서 시작하는 Ya (줄바꿈 뒤)

/Ya$/ -> 123123Ya
$ : 문장의 뒤에 오는 Ya (줄바꿈 앞)

* flag 설정을 m(multi line)으로 하지 않으면 텍스트 전체의 시작과 끝을 의미함

\d{2,3}[- .]\d{3}[- .]\d{4}/g
~~[\w.]+@[.\w]+~~

/[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]/
/(?:https?:\/\/)?(?:www\.)?(?:naver\.com\/)([a-zA-Z0-9-_]{11})/g


출처: https://songsong.dev/entry/정규표현식-공부하기 [송송은 오늘도 열심히 코딩 하네]

반응형
댓글
공지사항