U
Модификатор алчности замены делает весь жадный подшаблон ленивым здесь, вы должны удалить его вместе с . Вам также не нужен модификатор DOTALL, потому что в вашем шаблоне нет никакого поведения, поведение которого может быть изменено с помощью этого флага.preg_match("@/data/([0-9]+)@i", $str, $matches);
.
s
/data/
Теперь шаблон будет соответствовать:
/data/
- последовательность буквенных символов([0-9]+)
- Группа 1, захватывающая 1 + цифры (такие же, как(d+)
)
См. Демо-версию PHP .
$str = "differentcontentLocationhttps://e...content-available-to-author-only...e.com/api/result/13548/data/123456differentstuffincludingwhitespacesandnewlines8484";
$str2 = "differentcontentLocationhttps://e...content-available-to-author-only...e.com/api/result/13548/data/123456";
preg_match("@/data/([0-9]+)@i", $str, $matches);
print_r($matches); // Array ( [0] => /data/123456 [1] => 123456 )
preg_match("@/data/([0-9]+)@i", $str2, $matches2);
print_r($matches2); // Array ( [0] => /data/123456 [1] => 123456 )