可能重複:
Search for a regexp in a java arraylist使用正則表達式來訪問列表中的項目
是否有訪問存儲在使用正則表達式一個列表項的方法嗎?
採取下面的代碼作爲示例:
String jpg = "page1.jpg";
String jpeg = "page-2.jpeg";
String png = "page-003.png";
ArrayList<String> images = new ArrayList<String>();
images.add(jpg);
images.add(jpeg);
images.add(png);
Pattern regex = Pattern.compile("\\D{4,5}0*1.\\w{3,4}");
int index = images.indexOf(regex);
if(index != -1)
System.out.println("Did find the string");
else
System.out.println("Didn't find the string");
上述代碼中不找到字符串page1.jpg
工作,而是返回-1
。
有沒有一種方法,這可以不通過列表迭代和檢查字符串是否與正則表達式匹配來實現?
@Aaron Sheffey的 - 我沒有看到這個問題,但提問者明確希望所有在那裏,我只想要一個單一的項目(匹配正則表達式,由於不會有倍數)相匹配的項目。我已經具體詢問是否有一種方法可以做到這一點,以反覆構成上述問題中提供的答案。 –
@我的頭痛 - 爲什麼你如此反對迭代? indexOf在內部使用迭代。 – sblundy
@sblundy - 我不反對迭代 - 我只是想知道是否有沒有辦法做到這一點。我打算強調,由於他正在投票結束我的問題,所以在我的問題上與Aaron在他的評論中有所不同。 –