<?
$text = "Куда идем мы с пяточком, большой большой секрет,
несем бутылку с коньячком, хвоста за нами нет";
$text = preg_replace("#(.*?)([а-я])+(?=,)(.*)#iu","\\2",$text);
echo $text;
?>
Вот еще одно мое решение, оно подошло, но массив получается странный, вот такой
Array ( [0] => Array ( [0] => пяточком [1] => секрет [2] => коньячком ) [1] => Array ( [0] => м [1] => т [2] => м ) ) 1
Как видно в массиве еще содержатся последние буквы найденных слов, не пойму почему. Второе решение
<?php
$text = "Куда идем мы с пяточком, большой большой секрет,
несем бутылку с коньячком, хвоста за нами нет";
$text = preg_match_all("#([а-я])+(?=,)#ium",$text,$match);
echo print_r($match) . "<br>" . $match[0][2];
?>
Спустя 3 минуты, 55 секунд (25.01.2011 - 20:23) Dron19 написал(а):
просто хочу иметь нормальный массив, без отходов...
Спустя 5 минут, 3 секунды (25.01.2011 - 20:28) ApuktaChehov написал(а):
preg_match_all('/ [А-ЯЁA-Z]*,/iu', $text, $match);
Но щас дедушка мороззз придет, чего нибудь по круче напишет, он это умеет
Но щас дедушка мороззз придет, чего нибудь по круче напишет, он это умеет
Спустя 4 минуты, 35 секунд (25.01.2011 - 20:32) Dron19 написал(а):
Цитата (ApuktaChehov @ 25.01.2011 - 17:28) |
preg_match_all('/ [А-ЯЁA-Z]*,/iu', $text, $match); Но щас дедушка мороззз придет, чего нибудь по круче напишет, он это умеет |
получается пустой многомерный массив
Array ( [0] => Array ( ) ) 1
Спустя 2 минуты, 32 секунды (25.01.2011 - 20:35) ApuktaChehov написал(а):
Кодировку учитываем?
вот у меня работает:
Результат:
вот у меня работает:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<?php
$text = "Куда идем мы с пяточком, большой большой секрет,
несем бутылку с коньячком, хвоста за нами нет";
$text = preg_match_all('/ [А-ЯЁA-Z]*,/iu', $text, $match);
echo print_r($match);?>
</body>
</html>
Результат:
Array ( [0] => Array ( [0] => пяточком, [1] => секрет, [2] => коньячком, ) ) 1
Спустя 1 минута, 38 секунд (25.01.2011 - 20:36) Dron19 написал(а):
кодировку учитываем
Спустя 3 минуты, 14 секунд (25.01.2011 - 20:40) Dron19 написал(а):
сделал так получился тот же результат что и у тебя
Array ( [0] => Array ( [0] => пяточком [1] => секрет [2] => коньячком ) ) 1
Мне интересно почему с preg_replace у меня не получилось
$text = preg_match_all('/\s[А-ЯЁA-Z]*(?=,)/iu', $text, $match);
Array ( [0] => Array ( [0] => пяточком [1] => секрет [2] => коньячком ) ) 1
Мне интересно почему с preg_replace у меня не получилось
Спустя 37 секунд (25.01.2011 - 20:40) DedMorozzz написал(а):
Цитата |
вытащить все все слова которые находятся перед запятой, то есть мне нужна часть в предложении, которая стоит между пробелом и запятой |
здесь описаны 2 разные задачи!
Спустя 1 минута, 43 секунды (25.01.2011 - 20:42) DedMorozzz написал(а):
Вот с прег реплейсом:
$a = 'Куда идем мы с пяточком, большой большой секрет,
несем бутылку с коньячком, хвоста за нами нет';
$a = preg_replace('#.*?,(.*?),.*#su','$1',$a);
echo $a;// большой большой секрет
Спустя 3 секунды (25.01.2011 - 20:42) Dron19 написал(а):
Куда идем мы с пяточком, большой большой секрет,
несем бутылку с коньячком, хвоста за нами нет
Нужно получить с помощью preg_replace
пяточком
секрет
коньячком
Но у меня не получилось...
несем бутылку с коньячком, хвоста за нами нет
Нужно получить с помощью preg_replace
пяточком
секрет
коньячком
Но у меня не получилось...
Спустя 2 минуты, 28 секунд (25.01.2011 - 20:45) ApuktaChehov написал(а):
А зачем с preg_replace-ом?
Спустя 2 минуты, 58 секунд (25.01.2011 - 20:47) DedMorozzz написал(а):
если ты ищешь МАССИВ вхождений - тогда и используй ф-и для поиска массивов.
Реплейс удобен для 1го значения.
Микроскопом гвозди можно забить, но результат будет не кошерным
Реплейс удобен для 1го значения.
Микроскопом гвозди можно забить, но результат будет не кошерным
Спустя 26 секунд (25.01.2011 - 20:48) Dron19 написал(а):
просто для себя, интересно поузнавать новое...
Спустя 2 минуты, 5 секунд (25.01.2011 - 20:50) Dron19 написал(а):
вот если поставить задачу вытащить первое значение, то у меня получилось, если кому интересно, то вот как я это сделал
<?php
$text = "Куда идем мы с пяточком, большой большой секрет,
несем бутылку с коньячком, хвоста за нами нет";
$text = preg_replace("#.*?([а-яa-z]+),(.*)#su","\\1",$text);
echo $text;
?>
Спустя 1 минута, 37 секунд (25.01.2011 - 20:52) Dron19 написал(а):
всем спасибо...
Спустя 8 минут, 6 секунд (25.01.2011 - 21:00) DedMorozzz написал(а):
да, нормально. Только 2е скобки не нужны. На них формируется ссылка(это время) а она не используется.
Спустя 15 минут, 3 секунды (25.01.2011 - 21:15) Dron19 написал(а):
две последние скобки? Или те, что посередине?
Спустя 40 минут, 43 секунды (25.01.2011 - 21:55) DedMorozzz написал(а):
последняя скобка.
Цитата |
"#.*?([а-яa-z]+),(.*)# |
эквивалент, без лишних ссылок :
Цитата |
"#.*?([а-яa-z]+),.*# |
Спустя 1 час, 19 минут, 35 секунд (25.01.2011 - 23:15) Dron19 написал(а):
А да, это я и так сделал, спасибо.
Спустя 56 минут, 14 секунд (26.01.2011 - 00:11) inpost написал(а):
Dron19
Первые вернули результат \\1 , вторые вернули \\2 . Если ты \\2 не используешь, то и нет смысла группировать.
Первые вернули результат \\1 , вторые вернули \\2 . Если ты \\2 не используешь, то и нет смысла группировать.
Спустя 7 часов, 28 минут, 26 секунд (26.01.2011 - 07:40) Dron19 написал(а):
За я знаю, просто привычка ссылки делать
_____________
PHP+MySQL - уже изучил, осталось всего лишь это:
C,C++,C#,JavaScript,Python,Ruby,Perl,OpenGl,DirectX,ASP.NET - Намерен учить все