[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вырезать подстроку из строки
pyfik
Помогите пожалуйста с задачей.
Необходимо из строк вида
"@ title aa"
"@title AA"
"@ title aа"
"@ title AА"

получить title
То есть строка начинается на @, далее возможен пробел, далее текст который нужно вырезать, далее пробел, и далее AA в неизвестном регистре символов




Спустя 6 минут, 5 секунд (25.10.2011 - 23:13) kovaldm написал(а):
Юзай регулярные выражения.

Спустя 35 секунд (25.10.2011 - 23:14) Winston написал(а):
preg_match('#^"@ ?(.*) aa"$#i', $str, $match);
print_r($match);

Спустя 29 секунд (25.10.2011 - 23:14) Игорь_Vasinsky написал(а):
попробуй

$str = "@ title aa";

preg_match("#@\s*(.*)\s*\w+$#iusU", $str, $out);

echo '<pre>' . print_r($out, 1) , '</pre>';



u - если в юникоде

Спустя 9 минут, 40 секунд (25.10.2011 - 23:24) Winston написал(а):
Ну или так, если у тебя в строке много тайтлов
$str = '"@ title aa"
"@title1 AA"
"@ title2 aа"
"@ title3 AА"'
;
preg_match_all('#^"@ *(\S+) *[aа]*"$#imu', $str, $match);
print_r($match);

Спустя 2 минуты, 8 секунд (25.10.2011 - 23:26) Игорь_Vasinsky написал(а):
пробелы "явно" указывать не обязательно?

Спустя 4 минуты, 58 секунд (25.10.2011 - 23:31) Winston написал(а):
Ну это смотря какие у тебя нужды, если нужно, чтобы присутствовали только пробелы, то нужно явно указывать, если нет можно и метасимвол влепить \s.
\s - соответствует любой символ из набора [ \f\n\r\t]

Спустя 10 часов, 29 минут, 34 секунды (26.10.2011 - 10:01) pyfik написал(а):
Ого ) Спасибо за помощь, буду пробывать

Спустя 25 минут, 8 секунд (26.10.2011 - 10:26) pyfik написал(а):
нашёл решение без регулярок

$str = stristr('@title1 AA',' aa',true);
$str = trim($str, ' @');
echo $str;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.