Возможно, вы захотите упростить свое выражение.Например, здесь мы можем просто использовать группы захвата для нацеливания ваших желаемых идентификаторов в URL.Возможно, этого выражения будет достаточно:
\/news\/([a-z-]+)([0-9]+)\.html
, который вы можете дополнительно добавить / уменьшить его границы, если хотите.Например, вы можете добавить любые другие символы, которые могут стоять перед идентификаторами в этой группе ([a-z-]+)
, тогда ваше выражение изменится на:
\/news\/([a-z-\/=]+)([0-9]+)\.html
RegEx
Если это был не вашжелаемое выражение, вы можете изменить / изменить свои выражения в regex101.com .
RegEx Circuit
Вы также можете визуализировать свои выражения в jex.im :
Код
$pattern = '/\/news\/([a-z-\/=\?]+)([0-9]+)\.html/is';
$subject = 'http://localhost/news/content/title-id/id=287.html';
preg_match_all($pattern, $subject, $matches);
var_dump($matches);
Вывод
array(3) {
[0]=>
array(1) {
[0]=>
string(34) "/news/content/title-id/id=287.html"
}
[1]=>
array(1) {
[0]=>
string(20) "content/title-id/id="
}
[2]=>
array(1) {
[0]=>
string(3) "287"
}
}