반응형
1. 대표적인 패턴
패턴 | 의미 |
x | 문자 x |
xyz | 문자 xyz |
[xyz] | x,y,z 중 하나의 문자 |
[a-z] | a~z 중 하나의 문자 |
[^xyz] | x,y,z가 아닌 하나의 문자 |
[^a-z] | a~z가 아닌 하나의 문자 |
abc|xyz | 문자열 abc 또는 xyz |
{숫자} | 반복 횟수 |
^x | 시작문자 x |
x$ | 종료문자 x |
. | 하나의 문자 |
x* | 0개이상 계속되는 x |
\ | 다음에 오는 문자를 이스케이프 처리 |
\d | 숫자 0~9 |
\D | 숫자가 아닌 문자 = [^0-9] |
\W | 영문, 숫자, 언더바 = [A-za-zo-9_] |
\s | 공백문자(스페이스, 탭, 줄바꿈 등) |
\S | 공백문자 이외의 문자 = [^\s] |
\t | 수평탭 |
\n | 줄바꿈 코드 |
2. 참고사항
1. ^ -> 시작표시(매칭이 처음부터 되어야 함)
2. $ -> 끝표시(문자열 끝에 매칭되어야 함)
3. [] -> 문자열 셋
- [ab][a-z][0-9] -> 첫글자는 a 또는 b이고 그 다음에 a~z가 나오고 그 뒤에 0~9가 나온다는 뜻
- []안에 ^를 쓰면 부정의 의미
4. * -> 0번 이상 반복
5. + -> 1번 이상 반복
6. ? -> 0 또는 1회
7. {} -> 횟수 표시
- [a][2]이면 aa이고 [a]{2,}이면 a가 2개 이상이며 [a]{2,4}이면 aa, aaa, aaaa이다.
8. | -> or의 뜻
9. {} -> 그룹화
10. . -> 뉴라인(\n) 제외한 한 문자(진짜 .을 사용하기 위해선 \.으로 표시해야 한다
3. 자주 사용하는 정규표현식
공백없는 숫자와 대소문자 | /^[a-zA-Z0-9]*$/ |
공백포함 숫자와 대소문자 | /^[a-zA-Z0-9 ]*$/ |
한글포함 특수문자와 공백 | /[^?a-zA-Z0-9/]/ |
한글제외 특수문자와 공백 | /[^-가-?a-zA-Z0-9/ ]/ |
영문자, 소문자, 숫자, "-","_" 로만 구성된 길이 2~10자리 사이의 문자열 | /^[a-z0-9_-]{2,10}$/ |
19자리 숫자와 "-"로 구성된 신용카드 번호 | /^[0-9-]{19}$/ |
숫자로 구성된 4자리-4자리-4자리-4자리 유형 체크 (ex. 신용카드 번호) | /^[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}$/ |
영문자 대소문자, 숫자로만 구성 | /[a-zA-Z0-9]/ |
3자리-3~4자리-4자리(사이에 문자 아무거나 가능) | /^\d[3]-\d[3,4]-\d[4]$/ |
일반 전화번호 | /^\d{2,3}-\d{3,4}-\d{4}$/; |
휴대폰 번호 | /^\d{3}-\d{3,4}-\d{4}$/; |
맥어드레스 체크 | /^[a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}$/ |
IP 주소 (IPv4) | /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ |
일반 이메일 주소 체크 | /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ |
정밀한 이메일 주소 체크 | /(([^<>()\[\]\\.,;:\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,}))/ |
최소 8자리 이상 영문 대소문자, 숫자, 특수문자가 각각 1개 이상 (패스워드 체크시 활용) | /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/ |
최소 8자리 이상 숫자, 특수문자가 각각 1개 이상 (패스워드 체크시 활용) | /^(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/ |
URL 체크 (프로토콜 포함, ex) http://www.naver.com ) |
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/ |
URL 체크 (프로토콜 옵션, ex) http://www.naver.com, www.naver.com) |
/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/ |
HTML 태그인지 체크 | /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ |
하이퍼링크 체크 | /(?!<a\sname=\"([\w\s\d\-\.\#]+)\"><\/a>)<a\sname=\"([\w\s\d\-\.\#]+)\">(.*?)<\/a>/ |
숫자인지 체크 | ^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$ |
웹사이트 링크인지 체크 | <a\s+(?:[^>]*)href=\"((?:https:\/\/|http:\/\/)(?:.*?))">(?:.*?)<\/a> |
년월일 (yyyy-mm-dd) 체크 | /^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/ |
주민등록번호 체크 | /^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{1,5}$/ |
한글 지정 | [ㄱ-ㅎㅏ-ㅣ가-힣] |
허용하고자하는 특수문자 지정 | [.,!?] |
a-z 소문자, A-Z 대문자, 0-9 숫자, 한글 (ㄱ-ㅎ / ㅏ-ㅣ / 가-힣) [허용] | [a-zA-Z0-9 ㄱ-ㅎㅏ-ㅣ가-힣] |
a-z 소문자, A-Z 대문자, 0-9 숫자, 한글(ㄱ-ㅎ / ㅏ-ㅣ / 가-힣), 반점, 마침표 [허용] | [a-zA-Z0-9 ㄱ-ㅎㅏ-ㅣ가-힣.,] |
특수문자 및 공백 제거 | [a-zA-Z0-9 ㄱ-ㅎㅏ-ㅣ가-힣] |
위 정규표현식은 아래 링크 페이지에서 테스트할 수 있다.
정규표현식 테스트 페이지 -> https://regexr.com/50uhi
🙏 참조 ::
반응형
'Java' 카테고리의 다른 글
[Java] 배열 내 요소 중복여부 체크 (0) | 2022.04.26 |
---|---|
[Java] 배열에 특정 값 존재(포함)여부 체크 (0) | 2022.03.19 |
[Java] 문자열 시분초 -> 초단위로 변환(timeToSec) 구현 (0) | 2021.10.15 |
[Java] 초단위 -> 문자열 시분초로 변환(secToTime) 구현 (0) | 2021.10.15 |
[Java] 이모티콘(Emoji) 처리(EmojiManager, EmojiParser 클래스 사용) (0) | 2021.10.15 |