Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: разбить строку на 2 массива..

Сообщения:  [1-10]   [11-19] 

 
 автор: Trianon   (03.06.2010 в 20:14)   письмо автору
 
   для: а-я   (03.06.2010 в 20:03)
 

А вот это - извините.
Это в грамматику с просмотром лишь на один символ вперед не вписывается ну никаким боком.
А следовательно обязано считаться ересью.

  Ответить  
 
 автор: а-я   (03.06.2010 в 20:03)   письмо автору
 
   для: Trianon   (03.06.2010 в 17:08)
 

благодарю... и Ваш вариант работает.

просто немного усложнил задачу, строка может содержать и цифры.

получается в послед. массив попадает число на которое оканчивается строка, а все остальное в первый массив.

т.е.


/a1b2c3/aa11bb22cc/ccc333/ -> {a1b2c, aa11bb22cc, ccc},  {3,333}

  Ответить  
 
 автор: Trianon   (03.06.2010 в 17:08)   письмо автору
 
   для: а-я   (03.06.2010 в 13:24)
 

а я ведь показал, как разбирается эта штука.
Причем независимо от того, сколько там букв или цифр.

  Ответить  
 
 автор: Tonik992   (03.06.2010 в 14:41)   письмо автору
 
   для: Tonik992   (03.06.2010 в 14:39)
 

$pattern="#\/?([a-z0-9]*?)([0-9]*?)\/#";

Зачем звездочки ты используешь в своей регулярке???

$pattern="#\/?([a-z0-9]?)([0-9]?)\/#"; думаю эта поможет..

  Ответить  
 
 автор: Tonik992   (03.06.2010 в 14:39)   письмо автору
 
   для: а-я   (03.06.2010 в 13:24)
 

Тогда я вообще не понял сути твоих массивов.. Что должно быть в первом массиве, а что во втором?

  Ответить  
 
 автор: а-я   (03.06.2010 в 13:24)   письмо автору
 
   для: а-я   (02.06.2010 в 08:46)
 

получилось так реализовать...

\/?([a-z0-9]*?)([0-9]*?)\/


единственное, если просто число то оно оказывается во 2ом массиве а надо в первый ..

  Ответить  
 
 автор: а-я   (03.06.2010 в 12:59)   письмо автору
 
   для: Tonik992   (02.06.2010 в 22:39)
 

Благодарю.. протестирую... вроде то что надо

  Ответить  
 
 автор: Tonik992   (02.06.2010 в 22:39)   письмо автору
 
   для: vadimka   (02.06.2010 в 17:22)
 

Да и вариант Trianon'a подходит....

Может это подойдет более менее?

<?php
$str
"/a1/3/c2/b/";
$pattern="#\/?([a-z]?)([0-9]?)\/#";
preg_match_all($pattern,$str,$out);
echo 
"<pre>";
print_r($out[1]);
echo 
"<pre>";
print_r($out[2]);
?>

  Ответить  
 
 автор: vadimka   (02.06.2010 в 17:22)   письмо автору
 
   для: а-я   (02.06.2010 в 16:05)
 

не уверен, пусть знающие товарищи поправят

<?php
$str
"/a1/b/c3/";
$pattern="#([a-z])([\d]?)#";
preg_match_all($pattern,$str,$out);
echo 
"<pre>";
print_r($out[1]);
echo 
"<pre>";
print_r($out[2]);
?>

  Ответить  
 
 автор: Trianon   (02.06.2010 в 16:50)   письмо автору
 
   для: а-я   (02.06.2010 в 15:04)
 

[a-z]+|[0-9]+

  Ответить  

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования