728x90
<특수문자 입출력>
입력 | 출력 |
\ | ERROR |
\\ | \ |
\' | ' |
\" | " |
( | ( |
\( | ERROR |
/ | / |
\/ | ERROR |
\\| | | |
* 괄호나 일반 슬래시(/) 는 백슬래시(\)를 붙이지 않아도 된다.
*split 사용 시 | 를 사용하는데, 이때 \\| 로 잘라야한다.
ex> String splitTest = "홍길동|22|서울";
String[] info = splitTest.split("\\|");
입력 | 출력 |
\n | 줄바꿈 |
\r | 줄의 맨 처음으로 |
\t | 탭 |
\b | 커서를 한 문자 앞으로 |
\0 | 빈 칸 |
< 정규식 (Regular Expression) >
: 특정한 규칙을 가진 문자열의 집 합을 표현하는데 사용되는 언어.
1. pattern 클래스
String patternTest = "^[0-9]*$"; //숫자 검증 정규식
string str = "123456789";
Boolean result = Pattern.matches(patternTest, str); // matches() : 주어진 문자열에 매칭되는 값이 있는지 확인
System.out.println(result); // true
주요 메소드
Static Pattern complie(String regex) | 주어진 정규식을 갖는 패턴을 생성 |
String pattern() | 컴파일된 정규 표현식을 반환 |
Matcher matcher(charSequence input) | 패턴에 매칭할 문자열을 입혁해 Matcher를 생성 |
static boolean matches(STring regex, CharSequence input) | 정규식과 문자열이 일치하는지 확인 |
String[] split(CharSequence input) String[] split(CharSequence input, int limit) |
패턴이 일치하는 항목을 중심으로 input을 분할 limit -1의 횟수만큼 패턴 일치를 시켜 문자열을 자름 (문자열이 limit개 생성) 0일때, 최대한 많이 적용 |
* split(CharSequence input, intt limit) 예시
import java.util.regex.*;
public class regexTest {
public static void main(String[] args){
string regex = "ee";
String actualString = " aaaeebbbeeccceeddd";
Pattern pattern = Pattern.compile(regex);
int limit = 0;
String[] array = pattern.split(actualString , limit);
for( int i=0; i<array.length; i+=){
Ststem.out.println("array["+ i + "]=" + array[i]);
/* output
array[0] = aaa
array[1] = bbb
array[2] = ccc
array[3] = ddd
*/
}
}
}
2. Matcher 클래스
주요 메소드
Pattern pattern() | matcher가 해석한 패턴을 반환 |
Matcher usePattern(Pattern newPattern) | matcher가 사용할 pattern을 변경 |
Matcher reset(CharSequence input) | matcher가 분석할 문자열 변경 |
int start() | 매칭하는 문자열의 시작 인덱스 반환 |
int end() | 치하는 문자열의 마지막 문자열 이후 인덱스 반환 |
boolean matches() | 패턴에 전체 문자열이 일치한 경우 true 반환 |
boolean find() | 패턴 일치하는 다음 문자열을 찾음, 다음 문자열이 있다면 true |
boolean find(int start) | star인덱스 이후부터 패턴에 일치하는 문장열 찾음 |
String replaceAll(String replacement) | 패턴과 일치하는 모든 문자열을 지정된 replacement로 변경 |
3. 정규표현식 문법
^ | 문자열의 시작 |
$ | 문자열의 끝 |
. | 임의의 한 문자 |
* | 문자가 0번 이상 발생 |
+ | 문자가 1번 이상 발생 |
? | 문자가 0 번 or 1번 발생 |
[] | 문자의 집합 범위를 나타냄 [0-9] : 숫자(0~9까지) [a-z] : 알파벳(a-z까지) [^abc]일 경우 = a,b,c, 제외 |
{} | 횟수 또는 범위를 의미 |
() | 소괄호 안의 문자를 하나의 문자로 인식 |
| | or 조건 |
\ | 확장 문자의 시작 |
\b | 단어의 경계 |
\B | 단어가 아닌 것 경계 |
\A | 입력의 시작부분 |
\G | 이전 매치의 끝 |
\Z | 입력의 끝이지만 종결자가 있는 경우 |
\z | 입력의 끝 |
\s | 공백문자 |
\S | 공백문자가 아닌 나머지 문자 |
\w | 알파벳이나 숫자 |
\W | 알파벳이나 숫자를 제외한 문자 |
\d | [0-9]와 동일 |
\D | 숫자를 제외한 모든 문자 |
4. 자주 사용하는 정규식
^[0-9]*$ | 숫자 |
^[a-xA-Z]*$ | 영문자 |
^[가-힇]*$ | 한글 |
\\w+@\\w+\\.\\w+(\\.\\\w+)? | 이메일 |
^\d{2,3}-\d{3,4}-\d{4}$ | 전화번호 |
^01(?:0|1|[6-9])-(?:\d{3}|\d{4})-\d{4}$ | 핸드폰번호 |
\d{6}\-[1-4]\d{6} | 주민등록번호 |
^\d{3}-\d{2}$ | 우편번호 |
'언어 > 자바' 카테고리의 다른 글
[JAVA IO]FileInputStream & FileOutputStream (0) | 2023.03.09 |
---|---|
쿠키(Cookie)와 세션(Session) (0) | 2022.11.22 |
AES256 암호화, 복호화 (0) | 2022.10.25 |
JSON 이란? (0) | 2022.10.24 |
API 연동(1)_ 토큰발급 (0) | 2022.10.21 |