當我實現我的代碼中的正則表達式我有問題......正則表達式不工作java.util.regex。*;
我給它一個快速的解釋......我有收到一個字符串,以檢查是否該字符串包含的元素的功能一個ArrayList
(這些元素可以是一個或多個單詞)。如果它不包含列表中的任何元素,則返回將其寫入文件,否則將被忽略。首先,我做了以下內容:
private boolean containDiscontinuedWord(String query) {
Matcher matcher;
Pattern pattern;
for (String blackL : blackList) {
pattern = Pattern.compile("\\b" + blackL + "\\b");
matcher = pattern.matcher(query);
while(matcher.find()) {
return true;
}
}
return false;
}
我這裏的問題是,當我運行一個Linux環境下的應用程序(JVM 1.5安裝),那麼沒有什麼是寫入文件...但它在Windows下不環境。我的應用程序使用1.6兼容1.5版本構建。
所以我做了以下內容:
private boolean containDiscontinuedWord(String query) {
for (String blackL : blackList) {
if(query.matches(".*\\b(" + blackL + ")\\b.*")){
return true;
}
}
return false;
}
而這個功能工作得很好,但沒有「*」我的正則表達式的...但我需要使用的精確匹配,但它再次在Windows環境下運行良好。我已經在很多方面對這個問題進行了搜索,但我找不到解決這個問題的東西,我不知道我的正則表達式是不正確的還是可以是......我希望你們可以給我一個線索!
我很抱歉,如果這是一個愚蠢的問題,但非常感謝您的閱讀!
是否已確認這是在'containDiscontinuedWord'的問題,而不是位,用於寫入文件? –
聽起來就像戴夫牛頓所說的,你很可能正在看錯地方。 –
在使用正則表達式之前,我使用的是contains();但例如 字符串查詢=「這是我最喜歡的筆記本電腦」;並且在ArrayList中是「最喜歡的筆記本電腦」元素,那麼它將無法工作,但如果只是「最喜歡的」或「筆記本電腦」。包含工作正常,但只有當只有一個詞找到... – seas