我在php中有一些代码,我使用preg_grep在任何上下文中以任何顺序匹配几个单词。我试图将其转换为Java,但我似乎无法弄清楚。Java - 模式匹配
为关键字转换为正则表达式的字符串我的PHP代码:
function createRegexSearch($keywords)
{
$regex = '';
foreach ($keywords as $key)
$regex .= '(?=.*' . $key . ')';
return '/^' . $regex . '/i';
}
这将创建一个类似正则表达式的字符串:/^(?=.*bot)/i - 这应该匹配机器人,机器人,机器人等。相同的正则表达式字符串似乎不工作在Java这让我感到困惑。目前在java中,我用contains创建了一个类似的效果,但宁愿使用regex。
for (Map.Entry<String, String> entry : mKeyList.entrySet())
{
boolean found = true;
String val = entry.getValue().toLowerCase();
for (int i = 0; i < keywords.length; i++)
{
if (!val.contains(keywords[i].toLowerCase()))
found = false;
}
if (found)
ret.add(entry.getValue());
}
你能发布不起作用的java代码吗? – gcochard