LANGUAGE/JAVA

[JAVA] μ •κ·œν‘œν˜„μ‹

GaGah 2021. 9. 11. 18:32

πŸ“‹ μ •κ·œ ν‘œν˜„μ‹ 문법

μ •κ·œ ν‘œν˜„μ‹  μ—­ν• 
^ μ •κ·œμ‹μ˜ μ‹œμž‘
$ μ •κ·œμ‹μ˜ 끝
. μž„μ˜μ˜ ν•œ 문자
? μ•žμ˜ λ¬Έμžκ°€ ν•˜λ‚˜ μžˆκ±°λ‚˜ 없을 수 μžˆλ‹€
* μ•žμ˜ λ¬Έμžκ°€ ν•˜λ‚˜λ„ μ—†κ±°λ‚˜ λ¬΄ν•œνžˆ λ§Žμ„ 수 μžˆλ‹€
+ μ•žμ˜ λ¬Έμžκ°€ ν•˜λ‚˜ μžˆκ±°λ‚˜ λ¬΄ν•œνžˆ λ§Žμ„ 수 μžˆλ‹€.
{} λ¬Έμžκ°€ λ‚˜μ˜€λŠ” 횟수λ₯Ό λ§ν•œλ‹€. 

- {n} : μ•žμ˜ λ¬Έμžκ°€ μ •ν™•νžˆ n번 λ‚˜μ˜¨λ‹€.
- {n,} : μ•žμ˜ λ¬Έμžκ°€ 적어도 n번 λ‚˜μ˜¨λ‹€.
- {n,m} : μ•žμ˜ λ¬Έμžκ°€ 적어도 n번, κ·ΈλŸ¬λ‚˜ m번 λ³΄λ‹€λŠ” μ•ˆλ‚˜μ˜¨λ‹€. (= μ•žμ˜ 문자의 λΉˆλ„μˆ˜κ°€ n~m 사이)
() ν•˜λ‚˜μ˜ 문자둜 μ·¨κΈ‰

 

πŸ”€ 문자 클래슀

[abc] a,b or c
[^abc] a,b,c μ œμ™Έ
[a-zA-z] a~z λ˜λŠ” A~Z μ‚¬μ΄μ˜ 문자λ₯Ό ν¬ν•¨ν•˜κ³  μžˆλŠ”μ§€ 확인
( "-" : λ²”μœ„λ₯Ό 지정 ) 
[a-d[m-p]] a-d λ˜λŠ” m-p μ‚¬μ΄μ˜ 문자λ₯Ό ν¬ν•¨ν•˜κ³  μžˆλŠ”μ§€ 확인
= [a-dm-p] 와 동일

 

🈁 미리 μ •μ˜λœ 문자 클래슀

\d 숫자(=[0-9])
\D 숫자λ₯Ό μ œμ™Έν•œ λͺ¨λ“  숫자(=[^0-9])
\s 곡백문자 (\t \n \x0B \f \r)
\S 곡백문자λ₯Ό μ œμ™Έν•œ 문자 (=[^\s])
\w μ•ŒνŒŒλ²³ λ˜λŠ” 숫자
=[a-zA-Z__0-9]
\W μ•ŒνŒŒλ²³ λ˜λŠ” 숫자λ₯Ό μ œμ™Έν•œ 문자 (=[^\w])

 

πŸ”†  자주 μ‚¬μš©ν•˜λŠ” μ •κ·œμ‹

1. μ˜μ–΄, 숫자만 μž…λ ₯ κ°€λŠ₯ (띄어쓰기 λΆˆκ°€λŠ₯)

String Pattern = "^([a-zA-Z0-9]*)$";

 

2. μ˜μ–΄, 숫자만 μž…λ ₯ κ°€λŠ₯ (띄어쓰기 κ°€λŠ₯)

String Pattern = "^([a-zA-Z0-9\s]*)$";

 

 

 

 

πŸ”†  μ‹€μŠ΅

1. ν•œκΈ€λ‘œ 된 λ¬Έμžκ°€ κΌ­ ν¬ν•¨λ˜μ–΄μ•Ό ν•˜λ©°, μˆ«μžκ°€ μžˆμ–΄λ„ λœλ‹€.

^([κ°€-힣]+[0-9]*)$

 

  1_TEST

        Pattern pattern1 = Pattern.compile("^([κ°€-힣]+[0-9]*)$");
        System.out.println(pattern1.matcher("κ°€κ°€").matches());
        System.out.println(pattern1.matcher("κ°€κ°€1").matches());
        System.out.println(pattern1.matcher("κ°€κ°€12345678").matches());
        System.out.println(pattern1.matcher("1234").matches());

  1_κ²°κ³Ό

System.out.println(pattern1.matcher("κ°€κ°€").matches());
> true

System.out.println(pattern1.matcher("κ°€κ°€1").matches());
>true

System.out.println(pattern1.matcher("κ°€κ°€12345678").matches());
>true

System.out.println(pattern1.matcher("1234").matches());
>false

 

 

2. ν•œκΈ€λ‘œ 된 λ¬Έμžκ°€ κΌ­ ν¬ν•¨λ˜μ–΄μ•Ό ν•˜λ©°, μˆ«μžλŠ” μžˆμ–΄λ„ λœλ‹€. (단, 숫자의 κ°œμˆ˜λŠ” 3이 μ΅œλŒ€λ‹€.)

^([κ°€-힣]+[0-9]{0,3})$

  2_TEST

	Pattern pattern2 = Pattern.compile("^([κ°€-힣]+[0-9]{0,3})$");
        System.out.println(pattern2.matcher("κ°€κ°€").matches());
        System.out.println(pattern2.matcher("κ°€κ°€1").matches());
        System.out.println(pattern2.matcher("κ°€κ°€123").matches());
        System.out.println(pattern2.matcher("κ°€κ°€123456").matches());

 

  2_κ²°κ³Ό

System.out.println(pattern1.matcher("κ°€κ°€").matches());
> true

System.out.println(pattern1.matcher("κ°€κ°€1").matches());
> true

System.out.println(pattern1.matcher("κ°€κ°€123").matches());
> true

System.out.println(pattern1.matcher("κ°€κ°€123456").matches());
> false

 

 

πŸ”— μ°Έκ³  링크

 

LIST