2017-09-08 1 views
-3

문자열에 와일드 카드 문자를 추가하여 근사치를 검색 할 수있는 방법을 찾고 있습니다. 따라서 "b * ke"라는 문자열 목록을 검색하면 "(여기서 *는 와일드 카드입니다), 나는 {bake, bike, byke, boke}를 다시 가져올 것이고 이것은 java에서 가능합니까?문자열의 문자를 임의의 문자로 바꾸기

답변

1

"정규 표현식"이 필요합니다.

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

final String regex = "b[a-z]{1}ke"; 
final String string = "bake, bike, byke, boke"; 

final Pattern pattern = Pattern.compile(regex); 
final Matcher matcher = pattern.matcher(string); 

while (matcher.find()) { 
    System.out.println("Full match: " + matcher.group(0)); 
    for (int i = 1; i <= matcher.groupCount(); i++) { 
     System.out.println("Group " + i + ": " + matcher.group(i)); 
    } 
} 
+2

사실이다. 아니면'b [a-z] ke'. – Aaron

+0

예 (유용 할 수도 있음) ... – tanaydin

+0

또한 정규 표현식에 어떤 것도 그룹화하지 않으므로 그룹 색인과 연관된 각 그룹을 표시하는 것이 무의미한 것처럼 보입니다. 그 대신에 성냥을 셈하고 싶었 을까? – Aaron

0

모든 내가 무엇 OP 원에 가까운 것 같다 정규식 등 b.ke` '의 사용을 제안했을

System.out.println("bike".matches("b.ke")); 
    System.out.println("bake".matches("b.ke")); 
    System.out.println("b1ke".matches("b.ke")); 

    System.out.println("b123ke".matches("b.+ke")); 
    System.out.println("b[wait_for_it]ke".matches("b.+ke")); 
관련 문제