▲ 사용자 입력값이 숫자인지 검증하는 OnlyInteger Class 입니다.
2 3 | import java.util.regex.Matcher; import java.util.regex.Pattern; | cs |
▲ 정규표현식을 사용하기 위해 import해줍니다.
10 | Pattern p = Pattern.compile("(^[0-9]*$)"); | cs |
▲ 숫자만 허용하는 Pattern p 입니다.
17 | Matcher m = p.matcher(inputVal); | cs |
▲ inputVal의 값이 저희가 선언한 패턴 p 에 맞는 조건인지 검사해서 m에 저장합니다.
19 | if(m.find()) | cs |
▲ m.find() 는 패턴이 일치하는경우 boolean 형으로 true를 아니면 false를 리턴합니다.
21 | onlyNum = Integer.parseInt(inputVal); | cs |
▲ inputVal을 int형으로 형변환 해줍니다.
출처: http://highcode.tistory.com/6 [HighCode]
[한글]
String nickname = "닉Name좋아요123";
if(nickname.matches(".*[ㄱ-ㅎㅏ-ㅣ가-힣]+.*")) {
// 한글이 포함된 문자열
} else {
// 한글이 포함되지 않은 문자열
}
출처: http://ooz.co.kr/254 [이러쿵저러쿵]
숫자만 가능 : [ 0 ~ 9 ] 주의 : 띄어쓰기 불가능
/^[0-9]+$/
이메일 형식만 가능
/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/
한글만 가능 : [ 가나다라 ... ] 주의 : ㄱㄴㄷ... 형식으로는 입력 불가능 , 띄어쓰기 불가능
/^[가-힣]+$/
한글,띄어쓰기만 가능 : [ 가나다라 ... ] 주의 : ㄱㄴㄷ... 형식으로는 입력 불가능 , 띄어쓰기 가능
/^[가-힣\s]+$/
영문만 가능 :
/^[a-zA-Z]+$/
영문,띄어쓰기만 가능
/^[a-zA-Z\s]+$/
전화번호 형태 : 전화번호 형태 000-0000-0000 만 받는다. ]
/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/
도메인 형태, http:// https:// 포함안해도 되고 해도 되고
/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/
도메인 형태, http:// https:// 꼭 포함
/^((http(s?))\:\/\/)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/
도메인 형태, http:// https:// 포함하면 안됨
/^[^((http(s?))\:\/\/)]([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/
한글과 영문만 가능
/^[가-힣a-zA-Z]+$/;
숫자,알파벳만 가능
/^[a-zA-Z0-9]+$/;
주민번호, -까지 포함된 문자열로 검색
/^(?:[0-9]{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[1,2][0-9]|3[0,1]))-[1-4][0-9]{6}$/
Jquery 에서는 $.test() 메서드로,
PHP 에서는 preg_match() 함수로 사용
정규표현식의 기본 문법
정규표현식은 소프트웨어에 따라서 방식이나 지원 범위가 다를 수 있습니다.
^The | The로 시작하는 문자열 |
of despair$ | of despair로 끝나는 문자열 |
^abc$ | abc로 시작하고 abc로 끝나는 문자열 (abc 라는 문자열도 해당됨) |
notice | notice가 들어 있는 문자열 |
ab* | a 다음에 b가 0개 이상 (a, ab, abbb 등등) |
ab+ | a 다음에 b가 1개 이상 (ab, abbb 등등) |
ab? | a 다음에 b가 있거나 없거나 (ab 또는 a) |
ab{2} | a 다음에 b가 2개 있는 문자열 (abb) |
ab{2,} | a 다음에 b가 2개 이상 (abb, abbbb 등등) |
ab{3,5} | a 다음에 b가 3개에서 5개 사이 (abbb, abbbb, 또는 abbbbb) |
*, +, ?는 각각 {0,}, {1,}, {0,1}과 같습니다.
( )는 문자열을 묶음 처리할 때 사용 | |
a(bc)* | a 다음에 bc가 0개 이상 (묶음 처리) |
a(bc){1,5} | a 다음에 bc가 1개에서 5개 사이 |
hi|hello | hi나 hello가 들어 있는 문자열 |
(b|cd)ef | bef 또는 cdef |
(a|b)*c | a와 b가 섞여서 여러번 나타나고 그뒤에 c가 붙어있는 패턴 |
. (점) | 임의의 한 문자 |
^.{3}$ | 3문자로만 되어 있는 문자열 |
[ ] | 괄호 안에 있는 내용 중 임의의 한 문자 |
[^ ] | 첫문자로 ^를 쓰면 괄호 내용의 부정. 즉 괄호 안에 포함되지 않는 한 문자 |
[ab] | a 또는 b (a|b 와 동일한 표현) |
[a-d] | 소문자 a에서 d까지 (a|b|c|d 또는 [abcd] 와 동일) |
^[a-zA-Z] | 영문자로 시작하는 문자열 |
[0-9]% | % 문자 앞에 하나의 숫자가 붙어 있는 패턴 |
%[^a-zA-Z]% | 두 % 문자 사이에 영문자가 없는 패턴 |
특수 문자 자체를 검색하기 및 사용하기 | |||
\^ | ^ | \. | . |
\[ | [ | \$ | $ |
\( | ( | \) | ) |
\| | | | \* | * |
\+ | + | \? | ? |
\{ | { | \\ | \ |
\n | 줄넘김 문자 | \r | 리턴 문자 |
\w | 알파벳과 _ (언더바) | \W | 알파벳과 _ 가 아닌 것 |
\s | 빈 공간(space) | \S | 빈 공간이 아닌 것 |
\d | 숫자 | \D | 숫자가 아닌 것 |
\b | 단어와 단어 사이의 경계 | \B | 단어 사이의 경계가 아닌 것 |
\t | Tab 문자 | \xnn | 16진수 nn에 해당하는 문자 |
[ ] 안에서는 특수 문자가 모두 효력을 잃게 됩니다.
검색 + 치환을 위한 하부식(부분식) |
( )로 둘러싼 부분은 각각 하나의 덩어리로 취급해서, 검색시 ( ) 안에 해당되는 내용들을 변경할 내용에서 그대로 가져다 이용할 수 있습니다. 검색된 각각의 ( )안에 해당되는 내용은 변경할 내용에서 $1, $2, .. 등으로 지정해서 쓸 수 있습니다. |
예제) mp3파일 이름 바꾸기 검색 : (.*) - (.*)\.mp3 .*은 길이에 상관없이 임의의 문자열, \.은 점 치환 : $2 - $1.mp3 앞에서 검색한 ( )안에 해당되는 내용끼리 순서 바꾸기 ex) "제목 - 연주자.mp3" Þ "연주자 - 제목.mp3" |
앞에서 정의한 하부식을 다시 활용하기 (제가 잘못 이해한 것일 수도 있는데) |
\n은 ( ) 하부식 중에서 n번째 하부식을 가리킵니다. |
예제) (.+)\1+ \1로 되어 있으니까 첫번째 부분식 (.+)를 가리킵니다. 위 내용을 해석하자면, 일단 (.+)가 있으니까 이에 해당되는 내용을 찾고, \1+이 있으니까 첫번째 부분식 (.+)와 똑같은 내용이 그 뒤에 1번 이상 있는 문자열을 찾습니다. |
예제) abab같은 문자열이 위에 해당되는데, 일단 (.+) 즉 임의의 문자열 ab를 찾고 그 뒤에 \1+로 첫번째 부분식을 다시 1번 이상 있는 것을 찾으니까 뒤의 ab가 이에 해당합니다. |
변경자 ? 검색 방식 변경 | |
(?i) | 대소문자 무시 (기본값) |
(?-i) | 대소문자 구분 |
(?g) | "greedy" 모드로 전환 (기본값) |
(?-g) | "greedy" 모드 해제, 따라서 "+"는 "+?"과 동일한 것으로 인식 |
regexpal.com
바로가기
출처: http://gocoding.tistory.com/93 [Developer Factory]
'Language & Library > JAVA' 카테고리의 다른 글
Java 버전별 특징(upto Java12) (0) | 2018.12.02 |
---|---|
Java 10 버전 특징 (0) | 2018.12.02 |
JDK 1.6 다운로드 방법, JDK 1.6 URL 링크 (0) | 2014.06.25 |
iText (java로 jpg를 PDF로 만들기 ) (0) | 2014.04.11 |
[JAVA] null 체크, Null Pointer Exception(널 포인터 익셉션) 처리 (0) | 2014.03.08 |