Объединение всех фраз через
|
даст нужное регулярное выражение.
Язык в вопросе не указан, так что пример на PHP:
<?php
$phrases = [
'Hello world',
'Lorem ipsum',
'Just some test phrase',
'Phrase with special "|" chars',
];
$tests = array_merge($phrases, [
'Some other text',
'It should not match',
]);
$regex = sprintf('/^%s$/i', implode('|', array_map(function ($v) {
return preg_quote($v, '/');
}, $phrases)));
echo $regex . "\n";
array_walk($tests, function ($phrase) use ($regex) {
echo sprintf('%s: %s' . "\n", $phrase, preg_match($regex, $phrase) ? 'Matches' : 'Does not match');
});