X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> регулярный выражения. несколько условий
Letmetouchyou
Letmetouchyou
Topic Starter сообщение 8.3.2010, 22:45; Ответить: Letmetouchyou
Сообщение #1


[PHP]<style>
.green {color:#009900;}
.n {color:#336699;}
</style>
<?php
$str = 'function() { var a= 1; }';
$pattern = '/(var|typeof|new|return|if|for|in|while|break|do|continue|switch|case)([^a-z0-9\$_])/i';
$replacement = '<span class="green">$1</span>$2';
$str_n = preg_replace($pattern, $replacement, $str);
$pattern = '/(function)([^a-z0-9\$_])/i';
$replacement = '<span class="n">$1</span>$2';
echo preg_replace($pattern, $replacement, $str_n);

?>
[/PHP]
так все работает.
как объеденить?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yaroslav_hb
yaroslav_hb
сообщение 8.3.2010, 23:02; Ответить: yaroslav_hb
Сообщение #2


Можно масивом (наверное)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
Topic Starter сообщение 9.3.2010, 3:26; Ответить: Letmetouchyou
Сообщение #3


yaroslav, если в тот же масисв - ето одно регулярное вырадение получится
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 9.3.2010, 10:22; Ответить: Apay
Сообщение #4


массивом, это:
[PHP]$pattern = array(
'/(var|typeof|new|return|if|for|in|while|break|do|continue|switch|case)([^a-z0-9\$_])/i',
'/(function)([^a-z0-9\$_])/i' );
$replacement = array(
'<span class="green">$1</span>$2',
'<span class="n">$1</span>$2' );
echo preg_replace( $pattern, $replacement, $str );[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
Topic Starter сообщение 10.3.2010, 1:13; Ответить: Letmetouchyou
Сообщение #5


поомгоите напсать регулярное выражение.
нужно заменить строку
// dask dh sa hd ewwdhwehwq цуацу цй
на
<span class='some_class'>// dask dh sa hd ewwdhwehwq цуацу цй </span>

делаю так :
[PHP]$str = '// dask dh sa hd ewwdhwehwq цуацу цй'l;
$pattern = '/^\/\/$\n/';
$replacement = array('<span class="some_class">$1</span>');
echo preg_replace($pattern, $replacement, $str);[/PHP]


но не работает )
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 10.3.2010, 1:44; Ответить: alexdrob
Сообщение #6


[PHP]<?php
$str = '// dask dh sa hd ewwdhwehwq цуацу цй';
$pattern = array('/(\/\/.+)/');
$replacement = array('<span class="some_class">$1</span>');
echo preg_replace($pattern, $replacement, $str);
?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
Topic Starter сообщение 10.3.2010, 2:01; Ответить: Letmetouchyou
Сообщение #7


alexdrob, спасибо. Если не сложно можешь объеснить паттерн?
. - оответствует любому символу, за исключением символа новой строки
+ - хотя бы одно значение.
и почему не нада указвать переход на сл строку ?
я думал, тчо нужно указвать наачало и конце строки. Начало - // , конец - переход на сл строку \n.
объясни пожалуйста.)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 10.3.2010, 2:15; Ответить: alexdrob
Сообщение #8


я же не знаю какое именно требование) я привёл пример к этой строчке.

можно сделать так
[PHP]$pattern = array('/^(\/\/.+)$/mi'); [/PHP]
то есть строка начнётся с //
$ - значит до конца строки
m - значит что многострчный текст
i - игнорирование заглавных и строчных букв (хотя в данном случае оно не нужно)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
Topic Starter сообщение 10.3.2010, 2:41; Ответить: Letmetouchyou
Сообщение #9


спасибо ))
а как убрать пустую строку ?
//dasdasd

//asdas

как то тяжело понимаюься регулярные выражения =\
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yaroslav_hb
yaroslav_hb
сообщение 10.3.2010, 15:26; Ответить: yaroslav_hb
Сообщение #10


:goodpost:
http://www.php.su/articles/?cat=regexp&page=008

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Жители РФ не спешат отказываться от Gmail, хотя на размышления осталось всего несколько месяцев
20 Room 4171 11.3.2024, 16:00
автор: Lumex
Горячая тема (нет новых ответов) Сайты пролежали несколько месяцев, насколько реально восстановить трафик?
108 metvekot 21368 27.1.2024, 22:39
автор: Vmir
Горячая тема (нет новых ответов) Несколько площадок под ваши статьи и ссылки
119 slaru 54609 14.10.2022, 13:52
автор: slaru
Открытая тема (нет новых ответов) Несколько площадок под статьи (Беларусь)
5 vbiznese 1983 4.8.2022, 18:11
автор: vbiznese
Открытая тема (нет новых ответов) Нужен регулярный обмен Payoneer на WMZ
0 Skyworker 1181 25.10.2021, 11:43
автор: Skyworker


 



RSS Текстовая версия Сейчас: 19.4.2024, 16:56
Дизайн