Регулярное выражение будет самым простым:
$input = 'foo_left.jpg';
if(!preg_match('/_(left|right|center)/', $input, $matches)) {
// no match
}
$pos = $matches[0]; // "_left", "_right" or "_center"
Увидеть это в действии .
Обновление:
Для более оборонительного подхода (если может быть несколько экземпляров "_left"
и
друзья в имени файла), вы можете рассмотреть возможность добавления в регулярное выражение.
Это будет соответствовать, только если за l / r / c следует точка:
preg_match('/(_(left|right|center))\./', $input, $matches);
Это будет соответствовать, только если за l / r / c следует точка last в имени файла (что практически означает, что базовое имя заканчивается спецификацией l / r / c):
preg_match('/(_(left|right|center))\\.[^\\.]*$/', $input, $matches);
и т. Д.
Если вы используете эти регулярные выражения, вы найдете результат в $matches[1]
вместо $matches[0]
.