我在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