我试图使用正则表达式来查找字符串列表中的模式:
static List<Integer> getMatchingIndexes(List<String> list, String regex) {
ListIterator<String> li = list.listIterator();
List<Integer> indexes = new ArrayList<Integer>();
System.out.println(list.matches("\\w.*"));
while(li.hasNext()) {
int i = li.nextIndex();
String next = li.next();
if(Pattern.matches(regex, next)) {
indexes.add(i);
}
}
System.out.println(indexes);
return indexes;
}
当我试图查看是否有任何匹配(list.matches(&#34; \ w。*&#34;))时,看起来没有任何内容出现在他的列表中; (只是一个例子,而不是实际的正则表达式),它一直给我一个错误:
对于类型List
,方法matches(String)未定义如何在此列表中使用正则表达式?
答案 0 :(得分:2)
遍历列表(使用for-each循环)并检查匹配项:
for (String s : list) {
s.matches("\\w.*");
// Do stuff here.
}
答案 1 :(得分:1)
尝试通过以下方式迭代List<Integer>
中的每个项目:
for(Integer i : indexes){
System.out.println(i.toString().matches("\\w.*"));
}
以上相当于:
for(int i=0; i<indexes.size(); i++){
System.out.println(indexes.get(i).toString().matches("\\w.*"));
}