Я хотел бы, чтобы удалить последний номер, включая тире из этой строки:Удалить последнее число из строки с помощью PHP?
привет-мир-093
результат должен быть:
привет-мир
Я хотел бы, чтобы удалить последний номер, включая тире из этой строки:Удалить последнее число из строки с помощью PHP?
привет-мир-093
результат должен быть:
привет-мир
http://php.net/manual/en/function.preg-replace.php
mixed preg_replace (mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]]);
в вашем случае это должно быть что-то вроде:
$subject = 'hello-world-093' ;
preg_replace ('/-[0-9]*$/' , '' , $subject);
выше картина будет удалить -
и все номера, которые следуют в конце строки.
http://php.net/manual/en/function.strrpos.php
strrpos - Находит позицию последнего вхождения подстроки в строке
Do strrpos
с характером -
, и вы знаете, что результат будет последней позицией -
в строке.
Теперь вы можете получить только первую часть строки, используя http://www.php.net/manual/en/function.substr.php и предоставив свое положение как длину.
Проблема здесь состоит в том, что она не всегда будет привет-мир-093 это могут быть разными, например test-03 или hello-testing-here-98. – Joscplan
@Jose Cardama Это не проблема. Заметьте, что я использую 'strrpos' не' strpos', а strrpos находит LAST-появление '-' не первого' -', поэтому неважно, сколько есть, пока все это после последнего, Удалить. – Patashu
какой-нибудь пример пожалуйста? Я-то вроде нового для этого, и я потерял здесь. – Joscplan
Вот еще один способ. Я предлагаю это не как лучший способ, а просто другой способ кошки кошки. Я думаю, что важно понять, что существует множество способов решить проблему и изучить их. Вы узнаете много, научившись решать проблему под разными углами.
удачи надеюсь, что это помогает,
Tim Dumas
<?php
$pattern = "/^(.*)-[0-9]*$/";
$string = "hello-world-093";
preg_match($pattern, $string, $matches);
print_r($matches);
?>
Спасибо, это сработало отлично. – Joscplan