Java 정규 표현식 기능 및 응용
// Java ,
Pattern pattern = Pattern.compile("^Java.*");
Matcher matcher = pattern.matcher("Java ");
boolean b= matcher.matches(); // , true, false
System.out.println(b);
여러 조건으로 문자열을 분할할 때
Pattern pattern = Pattern.compile("[, |]+");
String[] strs = pattern.split("Java Hello World Java,Hello,,World|Sun");
for (int i=0;i<strs.length;i++) {
System.out.println(strs[i]);
}
문자 바꾸기(문자가 처음 발생)
Pattern pattern = Pattern.compile("Java ");
Matcher matcher = pattern.matcher("Java Hello World, Hello World");
//
System.out.println(matcher.replaceFirst("Java"));
문자 바꾸기(모두)
Pattern pattern = Pattern.compile("Java ");
Matcher matcher = pattern.matcher("Java Hello World, Hello World");
//
System.out.println(matcher.replaceAll("Java"));
문자 바꾸기(문자 바꾸기)
Pattern pattern = Pattern.compile("Java ");
Matcher matcher = pattern.matcher("Java Hello World, Hello World ");
StringBuffer sbr = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sbr, "Java");
}
matcher.appendTail(sbr);
System.out.println(sbr.toString());
메일 주소인지 확인합니다
String str="[email protected]";
Pattern pattern = Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.matches());
html 표시를 제거합니다
Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL);
Matcher matcher = pattern.matcher("<a href=\"index.html\"> </a>");
String string = matcher.replaceAll("");
System.out.println(string);
html에서 대응하는 조건 문자열을 찾습니다.◆ http://주소 코드 캡처
Pattern pattern = Pattern.compile("href=\"(.+?)\"");
Matcher matcher = pattern.matcher("<a href=\"index.html\"> </a>");
if(matcher.find())
System.out.println(matcher.group(1));
}
◆ 지정된 {} 의 문자 코드를 바꿉니다
// url
Pattern pattern = Pattern.compile("(http://|https://){1}[\\w\\.\\-/:]+");
Matcher matcher = pattern.matcher("dsdsds<http://dsds//gfgffdfd>fdf");
StringBuffer buffer = new StringBuffer();
while(matcher.find()){
buffer.append(matcher.group());
buffer.append("\r
");
System.out.println(buffer.toString());
}
◆ 정규 조건으로 지정한 디렉터리 아래 파일 코드를 조회합니다
String str = "Java {0} -{1} ";
String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}};
System.out.println(replace(str,object));
public static String replace(final String sourceString,Object[] object) {
String temp=sourceString;
for(int i=0;i<object.length;i++){
String[] result=(String[])object[i];
Pattern pattern = Pattern.compile(result[0]);
Matcher matcher = pattern.matcher(temp);
temp=matcher.replaceAll(result[1]);
}
return temp;
}
자바 정규 표현식의 기능은 아직도 매우 많은데 사실상 문자 처리라면 정규가 할 수 없는 일이 없다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.