我有一個不大不小的問題與此代碼:字符串匹配,Java的
String[] paragraph;
if(paragraph[searchKeyword_counter].matches("(.*)(\\b)"+"is"+"(\\b)(.*)")){
,如果我沒有記錯使用.matches()
而在字符串搜索特定的角色,我需要一個.*
但我想發生的是搜索一個字符而不將它匹配到另一個字詞。 例如is
我要搜索的關鍵字我不希望它與包含is
字符的單詞相匹配,例如ship, his, this
。所以我用\b
作爲邊界,但上面的代碼不適合我。
例子:
String[] Content= {"is,","his","fish","ish","its","is"};
String keyword = "is";
for(int i=0;i<Content.length;i++){
if(content[i].matches("(.*)(\\b)"+keyword+"(\\b)(.*)")){
System.out.println("There are "+i+" is.");
}
}
什麼,我想在這裏發生的是,它只會匹配is is,
但與his fish
。所以is
應該匹配is, and is
這意味着我希望它匹配,即使字符旁邊是非字母數字字符和空格。
上面的代碼有什麼問題?
如果其中一個內容具有大寫字母示例IS
,並且它與is
比較,它將無法匹敵。如果我錯了,請糾正我的錯誤。 如何在不更改源內容的情況下將較低的外殼字符與較高的外殼字符進行匹配?
是第[searchKeyword_counter] java.util.Pattern的實例? – Aubin
你可以給一些文本樣本,預期結果嗎? – Aubin
你的代碼似乎工作得很好,你的問題是什麼? – Keppil