2014-12-02 1 views
0

Что я сделал:Java регулярного выражения и согласовани

public static String cvtPattern(String str) { 
    StringBuilder pat = new StringBuilder(); 
    int start, length; 

    pat.append('^'); 
    if (str.charAt(0) == '\'') { // double quoting on Windows 
     start = 1; 
     length = str.length() - 1; 
    } else { 
     start = 0; 
     length = str.length(); 
    } 
    for (int i = start; i < length; i++) { 
     switch(str.charAt(i)) { 
     case '*': pat.append('.'); pat.append('*'); break; 
     case '.': pat.append('\\'); pat.append('.'); break; 
     case '?': pat.append('.'); break; 
     default: pat.append(str.charAt(i)); break; 
     } 
    } 
    pat.append('$'); 
    return new String(pat); 
} 

Тогда на моем главном:

//my args[0] is the string ".java" 
pattern = Regex.cvtPattern(args[0]); 
Pattern p = Pattern.compile(pattern); 
System.out.println("Pattern: " +p.toString()); 
Matcher m = p.matcher(fileName); 
if (m.matches()){ 
System.out.println("File to be added: "+currentFile.getName()); 
matchQueue.add(file); 
      } 

мой вход .java, и он будет составлен к^.java $. Как получилось, когда мое имя файла - что-то. Java, оно не совпадает? Где я сделал ошибку?

ответ

2

Ваш шаблон неправильный. ^.java$ не будет соответствовать anthing.java .Вы должны количественно . принять образование more.Your должно быть

^.*\.java$ 
+0

так, какая часть я сделал не так? – 10e5x

+0

О, я получил его уже, спасибо спасибо. Вы решили мою проблему – 10e5x

 Смежные вопросы

  • Нет связанных вопросов^_^