JAva正規表現

13158 ワード

1.文字列。一致(正規表現)


1)abcを含む
if(str.matches(".*abc.*")){
  System.out.println("매칭");
}
2)数字のみ3桁
if(str.matches("[0-9]{3}")){ // [\\d]{3}
  System.out.println("매칭");
}
3)Alphaペット、数字が5位を超える
if(str.matches("[0-9a-zA-Z]{5,}")) { // [\\w]{5,}
  System.out.println("매칭");
}
4)ハングル3~5位
if(str.matches("[가-힣]{3,5}")) {
	System.out.println("매칭");
}
5)数値で始まる@文字列ではありません.文字列
\\.해야 우리가 아는 점의 의미 
if(str.matches("^[\\D]\\w+@\\w+\\.\\w{2,3}$")) {
	System.out.println("매칭");
}
  • 拡張子
  • if(str.matches("^\\S+\\.(?i)(jpg|txt|gif|png)$")) {
    	System.out.println("매칭");
    }
    (?i)は、大文字と小文字を区別せずに一致することを示す.

    2.文字列。replaceAll(「正規表現」、置換文字列);

    String message = "소프트웨어(SW) 중심사회를 실현하기 위해서는
    SW의 가치를 제대로 인정하는 데서 출발해야 한다고 말했다.";
    		
    String result = message.replaceAll("SW", "소프트웨어");
    System.out.println(result);

    3.パターン類


    使用方法1
    String data[] = {"bat", "bba", "bbg", "bonus","CA", "ca",
    "c232", "car","date", "dic", "diraaa"};
    
    Pattern p = Pattern.compile("(?i)c[a-z]*");
    
    for(String d: data) {
    	Matcher m = p.matcher(d);
    	if(m.matches()) {
        	System.out.println(d);
    	}
    }
    使用方法2
    String source = "ab?cde?fgh";
    String reg = "(\\w)*";
    
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(source);
    
    while(m.find()) {
    	System.out.println(m.group());
    }
    String source = "HP : 010-1111-1111, HOME: 02-222-2222";
    String reg = "(0\\d{1,2}-\\d{3,4}-\\d{4})"; //그룹이라서 한 괄호에 묶어줘야한다.
    
    Pattern p = Pattern.compile(reg); // 패턴을 만듦 
    Matcher m = p.matcher(source); // 패턴을 타겟과 매치
    
    while(m.find()) {
    	System.out.println(m.group());
    }