2013-03-04 1 views

ответ

1

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); 

выше картина будет удалить - и все номера, которые следуют в конце строки.

+0

Спасибо, это сработало отлично. – Joscplan

1

http://php.net/manual/en/function.strrpos.php

strrpos - Находит позицию последнего вхождения подстроки в строке

Do strrpos с характером -, и вы знаете, что результат будет последней позицией - в строке.

Теперь вы можете получить только первую часть строки, используя http://www.php.net/manual/en/function.substr.php и предоставив свое положение как длину.

+0

Проблема здесь состоит в том, что она не всегда будет привет-мир-093 это могут быть разными, например test-03 или hello-testing-here-98. – Joscplan

+1

@Jose Cardama Это не проблема. Заметьте, что я использую 'strrpos' не' strpos', а strrpos находит LAST-появление '-' не первого' -', поэтому неважно, сколько есть, пока все это после последнего, Удалить. – Patashu

+0

какой-нибудь пример пожалуйста? Я-то вроде нового для этого, и я потерял здесь. – Joscplan

0

Вот еще один способ. Я предлагаю это не как лучший способ, а просто другой способ кошки кошки. Я думаю, что важно понять, что существует множество способов решить проблему и изучить их. Вы узнаете много, научившись решать проблему под разными углами.

удачи надеюсь, что это помогает,

Tim Dumas

[email protected]

<?php 
$pattern = "/^(.*)-[0-9]*$/"; 
$string = "hello-world-093"; 
preg_match($pattern, $string, $matches); 
print_r($matches); 
?> 
Смежные вопросы