일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 게시판만들기
- CRUD게시판만들기
- 날짜지정팝업
- 2020정보처리기사실기
- Oracle기초
- 정처기실기정리
- jsp게시판만들기
- 오라클설치
- js datepicker
- 프로그래머스 쿼리문
- 2020정보처리기사실기정리
- 자바연산자
- crud게시판
- 2020정보처리기사실기요약
- 자바 정규표현식 예제
- spring crud게시판
- 스프링게시판만들기
- 자바배열예제
- 스프링 CRUD게시판
- 자바기초
- PLSQL
- 스프링 crud
- 프로그래머스 MYSQL
- jsp 팝업띄우기
- 프로그래머스 SQL
- spring crud
- jsp 날짜팝업
- 오버라이딩
- html기초
- 정보처리기사실기정리
Archives
- Today
- Total
영보의 SystemOut.log
[Java] 자바 정규표현식 사용하여 댓글 분석하기 (compile, matcher, pattern) 본문
국비교육(아이티센 입사교육)/Java
[Java] 자바 정규표현식 사용하여 댓글 분석하기 (compile, matcher, pattern)
영보로그 2021. 10. 7. 09:09반응형
정규표현식 사용하여 댓글 분석하기 (compile, matcher, pattern)
함수 | 내용 |
compile(String regex) | 주어진 정규표현식으로부터 패턴을 만듭니다. |
matcher(CharSequence input) | 대상 문자열이 패턴과 일치할 경우 true를 반환합니다. |
pattern( | 컴파일된 정규표현식을 String 형태로 반환합니다. |
MovieAnalyze.java
package 빅데이터처리실습;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* 영화 댓글 분석
*/
public class MovieAnalyze {
public static void main(String[] args) {
// 댓글
String[] reply = {"<b>닥터 스트레인지</b>,마법계의 어벤져스 <영화리뷰 474번째 이야기> 영제: Doctor Strange(2016) 장르: 어드벤처,경이 런타임: 115분 관람 장소: 일산 롯데시네마 감독: 스콧 데릭슨 출연: 베네딕트 컴버베치, 레이첼...",
"ㅎㅎ 그럼 축구얘기는 이만하고 오늘 소개할 노래에 대해서 설명토록 하겠습니다. 모험을 느낀 영화, 오늘 소개할 노래는 영화 <b>닥터 스트레인지</b> ost 노래모음입니다 아직 개봉되지 않은 영화인데요 어젠 가 그젠가 하이라이트 상영회를 했다고 합니다...",
"내한공연을 보러 서울에 올라갔을 때 친구와 만나 마블 신작 영화 <b>닥터 스트레인지</b>를 보게되었는데요! 장르: 판타지,대체 타임라인이 쥐불놀이로 대동단결 되어있나 했더니?ㅋㅋ <b>닥터 스트레인지</b>에 등장하는 일종의 마법진이 쥐불놀이와 닮았기...",
"마블 시네마틱 유니버스 현존 최고, 최강의 마법사 슈퍼히어로인 <b>닥터 스트레인지</b>가 드디어 등장했습니다. 장르: 액션,경이 영화를 보신 분들은 아시겠지만 이번 '<b>닥터 스트레인지</b>'에는 기존 마블 영화에서 단골로 출연하던 아우디가 아닌 람보르...",
"돌아왔어요~!! 어느샌가 히어로물 하면 마블영화라는 공식이 생겨나고 있죠~ 이번에 개봉하는 영화 <b>닥터스트레인지</b>~~ 장르: 판타지,경이 영화 <b>닥터스트레인지</b>는 10/26 개봉했습니다. 전세계의 집중을 받는 이번 영화의 주인공은 <b>닥터스트레인지</b>란..."};
// 영화 장르 => 14가지
String[] feel = {"어드벤처", "액션", "판타지", "경이", "모험", "로맨스", "스릴러",
"공포", "다큐", "드라마", "추리", "애니메이션", "코미디", "뮤지컬"};
// 장르의 개수를 카운트해서 값을 저장하는 배열 객체 생성
int[] result = new int[14]; // 0으로 자동 초기화
String word = null;
for (int i = 0; i < reply.length; i++) {
String regex = "[A-Za-z0-9<>!~ㅋㅎ().?:/]";
reply[i] = reply[i].replaceAll(regex, "");
// System.out.println(reply[i]);
for (int j = 0; j < feel.length; j++) {
int count = 0;
Pattern p = Pattern.compile(feel[j]);
Matcher m = p.matcher(reply[i]);
while(m.find()) {
word = m.group();
count++;
}
result[j] = result[j] + count;
if (i == (reply.length-1) && j == (feel.length-1)) {
for (int x = 0; x < feel.length; x++) {
if (result[x] == 0) continue;
System.out.print(feel[x] + ":") ;
System.out.println(result[x] + "개");
}
}
}
}
}
}
PatternTest.java
package 빅데이터처리실습;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternTest {
public static void main(String[] args) {
String str = "빅데이터의 다음 단계는 예측분석이다. 이제 예측분석의 키워드를 이해하는 기업만 살아남는다.";
Pattern p = Pattern.compile("예측분석"); // 정규표현식으로부터 패턴을 만드는 메소드 -> compile
Matcher m = p.matcher(str);
int count = 0;
String word = null;
while(m.find()){ // find() - 패턴이 일치하면 true, 없으면 false
word = m.group(); // group() - 대상 text 전체에서 패턴과 일치된 text를 반환
count++;
}
System.out.println("분석 결과 : "+"패턴일치" );
System.out.println(word +" 단어 = > " + count +"개" );
}
}
반응형
'국비교육(아이티센 입사교육) > Java' 카테고리의 다른 글
[Java] 자바 Enum 응용 결제/정산 시스템 만들기 (0) | 2021.10.12 |
---|---|
[Java] 자바 공연 예약 어플리케이션 만들기 (0) | 2021.10.07 |
[Java] 람다식(Lambda Expressions) / 스트림(Stream) / 예제 (0) | 2021.10.06 |
[Java] 자바 스레드(Thread)개념 / 스레드 스케줄링 / 예제 (0) | 2021.10.06 |
[Java] 자바 인터페이스 / 인터페이스 구현 / 인터페이스 예제 (0) | 2021.10.05 |