|
|
|
| доброго всем
у меня есть строка типа такого
ааааа ааааа ааааа (ааааа) (13:33)
нужно получить при помощи регулярных выражений
ааааа ааааа ааааа (ааааа)
без (13:33)
я отметил то что я хочу убрать таким образом \(\d{1,2}[:]\d{1,2}\)
теперь хочу отметить обратное, то есть мне нужно все что до этого и кроме него
заранее спасибо | |
|
|
|
|
|
|
|
для: spassmacher
(08.02.2015 в 17:56)
| |
<?
$s = 'ааааа ааааа ааааа (ааааа) (13:33)';
$s = trim(preg_replace('/\(\d{2}:\d{2}\)/', '', $s));
//или
$s = rtrim($s, '(0..9:0..9)');
|
| |
|
|
|
|
|
|
|
для: confirm
(09.02.2015 в 20:49)
| | увидев ваш ответ меня заитересовал способность rtrim принимать шаблон для вырезания, и что самое интересное ваш пример работает
<?
rtrim($s, '(0..9:0..9)');
|
проверил мануал убедился что вы что то перепутали, rtrim не принимает шаблоны, а только неупорядоченый набор символов для вырезания с конца строки. Тоесть выше пример должен выглядить примерно так
Хоть разницы при текущих входящих данных нету, но нету никакой магии в том что будет вырезано. Заметно сразу при желании убрать лишний последний пробел - появляються проблемы.
<?
rtrim($s, ' (0..9:0..9)'); //"ааааа ааааа ааааа (ааааа"
rtrim($s, '0..9(:) '); //"ааааа ааааа ааааа (ааааа"
|
Но во втором случае ответ "почему", очевиден. | |
|
|
|
|
|
|
|
для: duhon
(15.02.2015 в 02:01)
| | > вы что то перепутали, rtrim не принимает шаблоны
Это вы что-то перепутали, ибо о том, что rtrim работает с шаблонами я вроде бы как не упоминал, или где это я такое писал?
А в остальном вы ознакомились с описанием, понимаете и сами. А проблемы как раз от того, что задание последовательности, это далеко не шаблон, и вырезается последовательно справа. | |
|
|
|