일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- DesignPattern
- 스프링
- 리눅스
- js
- 국비
- java
- 직장인자기계발
- Spring
- 패스트캠퍼스
- ncs
- 재택근무
- 직장인인강
- 웹
- 데이터베이스
- DB
- 패캠챌린지
- 디자인
- linux
- 자바기초
- 자바연습문제
- 자바예제
- java기초
- javabasic
- 자바
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 패스트캠퍼스후기
- 자바기본
- 디자인패턴
- String
- Today
- Total
FIF's 코딩팩토리
자바 기초 NCS교육과정(25)-정규식 본문
정규식(Regular Expression)
정규식이란 텍스트 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열을 찾아내기 위해
사용하는 것으로 미리 정의된 기호와 문자를 이용해서 작성한 문자열을 말한다.
Java124_RegEx.java
public class Java124_RegEx {
public static void main(String[] args) {
String sn="java korea";
String sg="";
String st="java korea";
//j_v_ ko_e_
for(int i=0;i<sn.length();i++) {
if(sn.charAt(i)=='a' || sn.charAt(i)=='r')
sg+='_';//문자열로 바뀜
else
sg+=sn.charAt(i);
}
System.out.println(sg);
System.out.println("regular expression을 이용한 문자변경");
//[]대괄호는 or를 의미한다.
//sn변수에 저장된 문자열에서 a이거나r이면 "_"로 변경한다.
System.out.println(sn.replaceAll("[ar]"/*or의미*/, "_"));
//sn변수에 저장된 문자열에서 a이거나 r이 포함되면 true 아니면 false을 리턴한다
System.out.println(sn.matches(".*[vr].*"));// .임의의 문자 *여러개 []는 or의 의미
//sn변수에 저장된 문자열에서 a이거나 r로 시작되면 true 아니면 false을 리턴한다
System.out.println(sn.matches("[ar].*"));//false
//sn변수에 저장된 문자열에서 a이거나 r로 끝나면 true 아니면 false을 리턴한다
System.out.println(sn.matches(".*[ar]"));//true
//{2,3}2개부터 3개까지의 공백을"@"으로 변경한다.
System.out.println(st.replaceAll("\\s{2,3}", "@"));// \s(공백)이 {2,3}2개이거나 3개이면 {2,}(2개이상이면)
}
}
Java125_RegEx.java
public class Java125_RegEx {
public static void main(String[] args) {
String sn = "1a234";
String sb = "2net5";
String st = "aetwefgcc";
//a-zA-Z_*$가 sn변수에 포함이 되어있으면 true, 아니면 false을 리턴한다
System.out.println(sn.matches(".*[a-zA-Z_*$].*"));
//sn변수에 0-9가 포함되어있으면 true 아니면 false을 리턴한다.
System.out.println(sn.matches(".*[0-9].*"));
System.out.println(sn.matches(".*\\d.*"));
//sb변수에 저장된 값이 2로 시작되면 true 아니면 false을 리턴한다.
System.out.println(sb.matches("2.*"));
//sb변수에 저장된 값이 2로 시작해서 5로 끝나면 true 아니면 false을 리턴한다.
System.out.println(sb.matches("2.*5"));
System.out.println(sb.matches("[ab].{5,}"));
//st변수에 저장된 문자열이 a또는 b로 시작하고 cc로 끝나면서
// 사이에는 임의의문자 최소1개에서5개를 포함한다.
System.out.println(st.matches("[ab].{1,5}cc"));
}
}
Java126_RegEx.java
정상적으로 주민번호가 입력이 되었으면 true을 반환하고 아니면
false을 반환하는 프로그램을 구현하시오.
[출력결과]
851306-2689540 승인이 되었습니다.
750625-16843 다시 입력하세요.
public class Java126_RegEx {
public static void main(String[] args) {
System.out.print("851306-2689540");
display(process("851306-2689540"));
System.out.print("750625-16843");
display(process("750625-16843"));
}//end main()
public static boolean process(String sn) {
// 여기를 구현하세요.
return sn.matches("\\d{6}-\\d{7}");
}//end process()
public static void display(boolean res) {
if (res) {
System.out.println(" 승인이 완료되었습니다.");
} else {
System.out.println(" 다시 입력하세요.");
}
}// end display()
}//end class
Java127_RegEx.java
data변수에 저장된 값이 아래와 같이 출력이 되도록 process메소드를 구현하시오.
[출력결과]
java
jsp
spring
public class Java127_RegEx {
public static void main(String[] args) {
String data="java/jsp:spring";
process(data);
}//end main()
public static void process(String data) {
//여기에 구현하시오.
String[] arr=data.split("[/:]");
for(String alpa:arr)
System.out.println(alpa);
System.out.println(data.replaceAll("[/:]","\n"));
}//end process()
}//end class
Pattern.matcher() : 빠르게 어떠한 text(String)이 주어진 Pattern에
있는지를 확인한다.
Pattern.comile(): 여러개의 텍스트를 재사용 가능한 Pattern
인스턴스로 컴파일 한다.
find() : 최초의 패턴 위치로 이동한 뒤 True 반환, 없으면 false
find(int start) : start 위치 부터 find
start() : 매칭되는 패턴의 시작 인덱스 반환
start(int group) : group이 매칭되는 시작 인덱스 반환
end() : 매칭된 패턴 한칸 뒤 인덱스 반환
end(int group) : 지정되 그룹이 매칭되는 한칸 뒤 인덱스 반환
group() : 최초로 그룹 매칭된 패턴을 반환 group(int group) : 그룹 매칭된 부분중
group번째 패턴을 반환
groupCount() : 패턴내 그룹핑(괄호로 묶은 패턴들)의 갯수 반환
matches() : 패턴이 전체 문자열과 일치하면 True
Java128_RegEx.java
public class Java128_RegEx {
public static void main(String[] args) {
String input1 = "wodkwodk";
String input2 = "maaa3aaaaa";
String input3 = "252";
// \\w : 영문자, 숫자 [0-9a-zA-Z]
System.out.println(input1.matches(".*[\\w].*"));
System.out.println(Pattern.compile("[\\d]").matcher(input1).find());
/*Pattern pn = Pattern.compile("[a-zA-Z]");
Matcher ce=pn.matcher(input1);
boolean res=ce.find();
System.out.println(res);*/
System.out.println(Pattern.compile("[a-zA-Z]").matcher(input1).find());
System.out.println(input1.matches("[\\w]{5,10}")
&& input1.matches(".*\\d.*")
&& input1.matches(".*[a-zA-Z].*"));
Pattern pn1=Pattern.compile("[\\d]");
Pattern pn2=Pattern.compile("[a-zA-Z]");
System.out.println(input1.matches("[\\w]{5,10}") && pn1.matcher(input1).find()
&& pn2.matcher(input1).find());
System.out.println(input2.matches("[\\w]{5,10}")
&& pn1.matcher(input2).find()
&& pn2.matcher(input2).find());
System.out.println(input3.matches("[\\w]{5,10}")
&& pn1.matcher(input3).find()
&& pn2.matcher(input3).find());
}//end main()
}//end class
'Back-End > 국비 NCS교과과정' 카테고리의 다른 글
자바 기초 NCS교육과정(27)-정규식 문제풀이 (0) | 2019.07.31 |
---|---|
자바 기초 NCS교육과정(26)-스트링 버퍼 (0) | 2019.07.31 |
자바 기초 NCS교육과정(24)-문자열 문제풀이 (0) | 2019.07.31 |
자바 기초 NCS교육과정(23)-문자열 (0) | 2019.07.31 |
자바 기초 NCS교육과정(22)-API&오브젝트 (0) | 2019.07.31 |