我想在这种类型的表达式中找到一些以 A 开头并以 E 结尾的 3 个字母单词:
A?E
我的程序是一本字典,我正在使用以下代码:
public ArrayList<String> Search(String word){
Node current = root;
ArrayList<String> result = new ArrayList<>();
while(current != null){
String st = "";
for(int i = 0; i < word.length(); i++){
if(current.SubNode(word.charAt(i)) != null) {
current = current.SubNode(word.charAt(i));
st+= current;
}
if(word.charAt(i) == '?'){
current = current.SubNode(word.charAt(i));
st+= current;
}
}
if (current.prefixes == true)
result.add(st);
}
return result;
}
但是不起作用
这里是如何使用正则表达式查找它的示例。只需迭代您的集合即可。
String input = "AoE";
Pattern p = Pattern.compile("(A*.*E)");
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println("m.length() = " + m.group().length());
if (m.group().length() == 3){
System.out.println("Found a " + m.group() + ".");
}
}
我是一名优秀的程序员,十分优秀!