Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с рег. выр. Вырезаем кусок строки

9.9K
27 августа 2007 года
Данила
38 / / 25.10.2006
Дана строка: item1, tem2, #item3#, item4, #item5#, item6

Нужно удалить все что находитмся между #. Как это сделать? Все "item" - совершенно разные слова.

 
Код:
$string = preg_replace("/(?<=#)[a-zA-Z_0-9.-]+(?=#)/",'',$string);


Неработает. Даже хз почему.
355
27 августа 2007 года
&lt;SCORP&gt;
786 / / 21.10.2006
 
Код:
echo preg_replace('/(#.*#)/U', '', "item1, tem2, #item3#, item4, #item5#, item6");
353
27 августа 2007 года
Nixus
840 / / 04.01.2007
Возможно проблема тут:
$string = preg_replace("/(?<=#)[a-zA-Z_0-9.[COLOR="Red"]\\-[/COLOR]]+(?=#)/[COLOR="#ff0000"]g[/COLOR]",'',$string);

Но я бы делал так:
 
Код:
$string = preg_replace("/#.*?#/g",'',$string);
355
27 августа 2007 года
&lt;SCORP&gt;
786 / / 21.10.2006
PHP"шная реализация не знает модификатора g, вместо него здесь U
9.9K
28 августа 2007 года
Данила
38 / / 25.10.2006
Всем спасибо, вышел из ситуации так:

 
Код:
$string = preg_replace("/(#.*#)(,)?/",'',$string);
312
28 августа 2007 года
dead_star
392 / / 26.11.2006
нужна помощь с pattern
следующий код
 
Код:
$text = '[size=10]aaa[/size]
[size=8]bbb[/size]'

$pattern = '/(\[size=)([0-9]+)(\])(.*)(\[\/size\])/';
$replace = '<span style="font-size:\\2pt">\\4</span>';
echo preg_replace ($pattern, $replace, $text);

выдает
[HTML]
<span style="font-size:10pt">aaa[/size]
[size=8]bbb</span>
[/HTML]
судя по оно так не должно быть
Цитата:
.
[INDENT]соответствует любому символу, кроме перевода строки (по умолчанию)[/INDENT]


помогите пожалуйста
чем можно заменить любой символ([COLOR="Red"].[/COLOR])

312
28 августа 2007 года
dead_star
392 / / 26.11.2006
Цитата: dead_star
нужна помощь с pattern



кажется все решилось само сабой
как говорится - RTFM
$pattern = '/(\[size=)([0-9]+)(\])(.*[COLOR="Red"]?[/COLOR])(\[\/size\])/';

27K
28 августа 2007 года
AKS.
34 / / 27.08.2007
dead_star, а такая разметка может попастся:

 
Код:
$text = '[size=10]aaa[size=8]bbb[/size]aaa[/size]'

?
312
30 августа 2007 года
dead_star
392 / / 26.11.2006
Цитата: AKS.
dead_star, а такая разметка может попастся:

 
Код:
$text = '[size=10]aaa[size=8]bbb[/size]aaa[/size]'

?


хм...
я сначало тоже подумал что не прйдет, а попробовав выяснил что нет
сначало он захватывает первую пару
[COLOR="Red"][size=10 ][/COLOR]aaa[size=8 ]bbb[COLOR="#ff0000"][/size][/COLOR]aaa[/size]
и мы получаем
[HTML]<span style="font-size:10pt">aaa[size=8]bbb</span>aaa[/size][/HTML]
естественно это неправельно, но...
захватив вторую пару мы получим
[HTML]
<span style="font-size:10pt">aaa<span style="font-size:8pt">bbb</span>aaa</span>
[/HTML]
совершенно правельный и валидный код

12
02 сентября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Данила
Всем спасибо, вышел из ситуации так:

 
Код:
$string = preg_replace("/(#.*#)(,)?/",'',$string);


По мойму проше и быстрее по exlode() делать уж коль скоро вхождение подстроки изветсно.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог