TIL 23.08.21

ν™©μ€ν•˜Β·2023λ…„ 8μ›” 21일
0

TIL

λͺ©λ‘ 보기
64/146

πŸ“ŒToday I Learned

μžλ°” μˆ˜μ—… (78)

μ •κ·œ ν‘œν˜„μ‹ + μžλ°” > 적용

  • 검색(+μΉ˜ν™˜) -> replaceAll(), replaceFirst()
  • 뢄리 -> split()
  • μœ νš¨μ„± 검사 > Pattern, Matcher
  1. μ •κ·œ ν‘œν˜„μ‹ 객체
  2. λ‹€λ₯Έ 객체의 κΈ°λŠ₯ 쀑 일뢀 μ •κ·œ ν‘œν˜„μ‹ 지원

μ „ν™”λ²ˆν˜Έ

// κ²Œμ‹œνŒ > 개인 정보 기재 λΆˆκ°€(μ „ν™”λ²ˆν˜Έ) > λ§ˆμŠ€ν‚Ή
String txt = "μ•ˆλ…•ν•˜μ„Έμš”. ν™κΈΈλ™μž…λ‹ˆλ‹€. 제 μ—°λ½μ²˜λŠ” 010-1234-5678μž…λ‹ˆλ‹€. 제 메일은 hong@gmail.comμž…λ‹ˆλ‹€. μΆ”κ°€ μ—°λ½μ²˜λŠ” 010-9876-5432μž…λ‹ˆλ‹€.";

// μ „ν™”λ²ˆν˜Έ, 이메일 λ§ˆμŠ€ν‚Ή
System.out.println(txt.replaceAll("010-[0-9]{3,4}-[0-9]{4}", "XXX-XXXX-XXXX")
				.replaceAll("\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}", "OOOO@OOOO"));
System.out.println();

// 첫번째 μ „ν™”λ²ˆν˜Έ λ§ˆμŠ€ν‚Ή
System.out.println(txt.replaceFirst("010-[0-9]{3,4}-[0-9]{4}", "XXX-XXXX-XXXX"));
System.out.println();

κ΅¬λΆ„μž

String name = "홍길동,μ•„λ¬΄κ°œ;ν•˜ν•˜ν•˜,,ν…ŒμŠ€νŠΈ μ΄μˆœμ‹ "; // csv

String[] list = name.split("[,;\s]{1,2}");

for (String item : list) {
	System.out.println(item);
}

μ •κ·œ ν‘œν˜„μ‹ 객체 μ‚¬μš©

String txt = "μ•ˆλ…•ν•˜μ„Έμš”. ν™κΈΈλ™μž…λ‹ˆλ‹€. 제 μ—°λ½μ²˜λŠ” 010-1234-5678μž…λ‹ˆλ‹€. 제 메일은 hong@gmail.comμž…λ‹ˆλ‹€. μΆ”κ°€ μ—°λ½μ²˜λŠ” 011-9876-5432μž…λ‹ˆλ‹€. 010-1212-3434";

String regex = "(\\d{3})-(\\d{3,4})-(\\d{4})";

// p1 > μ •κ·œ ν‘œν˜„μ‹ 객체
Pattern p1 = Pattern.compile(regex);

// txt을 λŒ€μƒμœΌλ‘œ p1의 νŒ¨ν„΄μ„ 검색
Matcher m1 = p1.matcher(txt);
        
// 찾은 λ²ˆν˜Έκ°€ 뭐지?
while (m1.find()) {
	System.out.println("[μ „ν™”λ²ˆν˜Έ 발견]");

	System.out.println("μ „ν™”λ²ˆν˜Έ: " + m1.group(0)); // 0 -> 전체
	System.out.println("톡신사: " + m1.group(1)); // -> 첫번째 μ†Œκ΄„ν˜Έ
	System.out.println("μ•žμžλ¦¬: " + m1.group(2)); // -> λ‘λ²ˆμ§Έ μ†Œκ΄„ν˜Έ
	System.out.println("λ’·μžλ¦¬: " + m1.group(3)); // -> μ„Έλ²ˆμ§Έ μ†Œκ΄„ν˜Έ

	System.out.println();
}

μ„±κ³Ό 이름 ꡬ뢄

String txt = "μ•ˆλ…•ν•˜μ„Έμš”. ν™κΈΈλ™μž…λ‹ˆλ‹€. λ„€? λ‹Ήμ‹  이름도 κΈΈλ™μ΄λΌκ΅¬μš”?, μ•„~ κΉ€κΈΈλ™μ΄μš”. μ €μͺ½μ— μ΅œκΈΈλ™λ„ μžˆμŠ΅λ‹ˆλ‹€. 그리고 남ꢁ길동도 μžˆμŠ΅λ‹ˆλ‹€.";

// μš”κ΅¬μ‚¬ν•­] λͺ¨λ“  길동이 μ°ΎκΈ°!!

//		String regex = "[ν™κΉ€μ΅œλ‚¨κΆ]?길동";
String regex = "(홍|κΉ€|졜|남ꢁ)?(길동)";

Pattern p1 = Pattern.compile(regex);

Matcher m1 = p1.matcher(txt);

while (m1.find()) {
	System.out.println("찾은 이름: " + m1.group());
	System.out.println("성씨: " + m1.group(1));
	System.out.println("이름: " + m1.group(2));
	System.out.println();
}

μœ νš¨μ„± 검사

String regex = ""; // μ •κ·œμ‹
Pattern p1 = null; // μ •κ·œμ‹ 객체
Matcher m1 = null; // 결과 객체
        
// 1. 이름 > ν•„μˆ˜, ν•œκΈ€, 2~5자 이내
regex = "^[κ°€-힣]{2,5}$"; // ^ - μ‹œμž‘, $ - 끝
        
// 2. 이메일 > ν•„μˆ˜, 이메일 ν˜•μ‹
regex = "^\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}$";   
        
// 3. λ‚˜μ΄ > ν•„μˆ˜, 숫자, 18μ„Έ 이상 ~ 100μ„Έ μ΄ν•˜
regex = "^[0-9]{2,}$";
        
// 4. 아이디 > ν•„μˆ˜, μ˜μ–΄+숫자+_ μ‘°ν•©, 숫자둜 μ‹œμž‘ λΆˆκ°€λŠ₯, 4~12자 이내
regex = "^[A-Za-z_][A-Za-z0-9_]{4,12}$";
regex = "^[A-Za-z_]\\w{4,12}$";

p1 = Pattern.compile(regex);
m1 = p1.matcher(id);

if (!m1.find()) {
	System.out.println("아이디 > ν•„μˆ˜, μ˜μ–΄+숫자+_ μ‘°ν•©, 숫자둜 μ‹œμž‘ λΆˆκ°€λŠ₯, 4~12자 이내");
	return false;
}

ν”„λ‘œμ νŠΈ

.gitignoreμ—μ„œ *.jar둜 μ ν˜€μžˆμ–΄μ„œ 라이브러리 파일이 pushλ˜μ§€ μ•Šμ•˜λ‹€. !*.jar 둜 λ³€κ²½ν•˜κ³  git bashμ—μ„œ cacheλ₯Ό μ§€μš°κ³  λ‹€μ‹œ pushλ₯Ό ν–ˆλ”λ‹ˆ 잘 μ μš©λ˜μ—ˆλ‹€.

git rm -r --cached .

https://webruden.tistory.com/134

profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€