私には些細な作業のように見えましたが、過去1時間でこれを達成できませんでした。
正規表現は、「excludephrase」というフレーズを含まないすべての単語に一致する必要があります。
例:
Match:
'ok string'
'いくつかのphrasOkは、フレーズにeがないため'
など...
一致しません:
'フレーズを除外します'
'一部のプレフィックス除外フレーズ''一部のフレーズ
を除外します'
など...
フレーズがある場合:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
'sit' と 'adipiscing' ではなく、すべての単語を検索する正規表現は次のようになります。
\b(?(?=sit|adipiscing)^\w+|\w+)\b
PHPで:
$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
$matches = array();
preg_match_all("/\b(?(?=sit|adipiscing)^\w+|\w+)\b/i", $text,$matches);
var_dump($matches);
それは正規表現になります^((?!phrase).)*$
これを解決する最も簡単な方法:マッチング(自明)の正規表現と逆の条件。
Python での例:
>>> not(re.search ('exclude phrase','Some prefix exclude phrase'))
False
>>> not(re.search ('exclude phrase','exclude phrase some suffix'))
False
>>> not(re.search ('exclude phrase','ok string'))
True