我有一个不大不小的问题与此代码:字符串匹配,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