помогите с рег виражением

texrdcom

Новичок
помогите с рег виражением

Задача вроде простая но:
есть строка
PHP:
$str ='проба';
/**
* надо разбить на пары букв тоесть (пр,об, ба);
* Хочу сделать одним выражением не получаеться
*/

preg_match_all('~(.{2})~s', $str, $res);
// так достает две первых пары как получить последнею пару ?
// Я понимаю что ее можно получить так .{2}$ - на уже вторым выражением
// плюс определить парное не парное количество символов
// но хотелось бы одним !
 

ksnk

прохожий
Ну, или так:
PHP:
preg_match_all('~(..|.$)~s', $str, $res);
ээээ... А последнюю пару букв нужно именно парой?
 

ksnk

прохожий
sage
imho- переходим во флейм.... :)
Чем? Тем что больше букв написано?
 

sage

Новичок
ну, а 5 символов ты как обозначишь? 5 точек? )
imho- переходим во флейм....
согласен... больше не пишем... как кому нравится, так и обозначаем n-ое кол-во любых символов ;)
 

texrdcom

Новичок
Ну вы даете написали все что угодно кроме правильного примера .!!!
 

sage

Новичок
ты по моей ссылке сходил?

-~{}~ 10.08.06 22:27:

регулярные тут не нужны. я вижу решение твоего вопроса применением 2-х функций. первую я тебе уже дал. о второй сам догадаешься, когда сделаешь кое-что первой )
 

texrdcom

Новичок
sage - слово проба!
надо разбить на пары букв тоесть (пр,об, ба);!
да нужно это (ба) парой !
конечно можно получить последний элемент масива посчитать симовлы и добавить с предедущего но - надо одним выражениям!
p/s
вроде это не реально в php нет модификатора perl: g
если ошибаюсь поправьте! plis

-~{}~ 10.08.06 15:30:

sage
без рег я сделал - !
мне кажеться регуляткой будет проще - меньше кода!
 

sage

Новичок
сорри, не заметил, что тебе нужен именно ба.... скорее всего, одной регуляркой - никак.
 

texrdcom

Новичок
Panchous
Ты хочешь помочь или так спаршиваеш
Я вроде описал задачу не стоит писать просто так в форум
смысл этого ?
 

Panchous

Павел
тебе подсказали решение?
не устраивает - потрудись объяснить почему!
 

Gorynych

Посетитель PHP-Клуба
texrdcom
а последняя пара не получается, потому что она НЕПОЛНАЯ, в слове "проба" 5 букв.

я так мыслю, что
Код:
$str =<<<EOT
Вот парадный подъезд. По торжественным дням,
Одержимый холопским недугом,
Целый город с каким-то испугом
Подъезжает к заветным дверям
EOT;

preg_match_all("/([^(\r|\n)]{1,2})/s", $str, $match);
var_dump($match);
хотя мне лично пока не понятно, надо ли вам парсить именно одно слово, строку или множество строк...
 

zxc

Новичок
> конечно можно получить последний элемент масива посчитать симовлы и добавить с предедущего
можно и без массивов

$text = chunk_split( (strlen($text)%2 ? substr($text,0,-1).substr($text,-2) : $text), 2);
 

texrdcom

Новичок
Вопрос кроче - Это можно сделать рег в PHP или нет ?
p/s
Я писал что без рег уже сделал strlen -> for ->substr
Если будет слово в utf-8 - понимаеш что покажет strlen ?
 
Сверху