Существуют ли какие-либо особые условия для получения номера?
Чтобы получить первый номер, просто используйте /\d+/
с preg_match
.
if (preg_match('/\d+/', $subject, $match)) {
$job_id = (int) $match[0];
}
В противном случае вы можете сделать что-то вроде следующего, которое ищет число, которому предшествует «задание» (без учета регистра).
if (preg_match('/job (\d+)/i', $subject, $match)) {
$job_id = (int) $match[1];
}
(Есть лучшие альтернативы для этого регулярного выражения, но лучше сначала все упростить.)
Другой вариант - перейти от регулярных выражений к более простому разбору строки:
sscanf($subject, 'Your Job %d ("%[^"]")', $job_id, $job_title);
// use $job_id and $job_title however you like
Конечно, подобное можно сделать и с preg_match
, но хорошо предлагать альтернативы.