Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

07.09.2009, 19:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
imajo.ati Перед и после - желательно чтобы стоял пробельный символ:
PHP код:
$str = ' asddasd asd asd sd sads ad asdas a /* hello */ world! /* 123 */ asds adsa dasdas das';
echo preg_replace('#\s/\*[\s\S]*?\*/\s#','',$str);
Но можно и без него ессесн:
PHP код:
$str = '/* hello */ world! /* 123 */';
echo preg_replace('#/\*[\s\S]*?\*/#','',$str);
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

07.09.2009, 19:40
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
PHP код:
<?php
$text = '
/*
абабаббабаб
*/
тут код проги
/** ещё один камент **/
текст
/***
ещё один глупый камент
***/
здесь могла быть ваша реклама!';
$result = preg_replace('/(\/\*.*?\*\/)*/ims', '', $text);
echo($result);
?>
мой вариант +)
|
|
|

07.09.2009, 23:11
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от imajo.ati
может кто подскажет способ получше?
Тебе нужен парсер. Если, конечно, в твои планы не входит бить код, потому что регулярные выражения всё равно будут фейлить.
Пример:
Код:
$pictures = glob('images/*');
/* Комментарий */
process($pictures);
|
|
|

08.09.2009, 10:05
|
|
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме: 975514
Репутация:
177
|
|
astrologer,
спасибо за замечание, я уже был в курсе этого, когда просил регулярное выражение.
в планы входит сначала заменить все строки в тексте на что-то такое:
%STRING_000001_(md5_заменённой_стро и)_(случайное_число_прохода _парсера)%
а потом удалить все комментарии.
может быть выскажешь свои мысли по этому поводу? будет ли это работать?
|
|
|

09.09.2009, 01:10
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от imajo.ati
в планы входит сначала заменить все строки в тексте на что-то такое:
%STRING_000001_(md5_заменённой_стро и)_(случайное_ число_прохода_парсера)%
а потом удалить все комментарии.
Не получится, причём по той же причине (выяснение которой, как всегда, остается читателю).
P.S.
Код:
~/[*](?:[^*]++|[*](?![*]))*[*]/~
|
|
|

11.09.2009, 16:06
|
|
Участник форума
Регистрация: 24.02.2006
Сообщений: 206
Провел на форуме: 2735257
Репутация:
103
|
|
PHP код:
$str = "http://localhost/#qwerty=text#aaa22";
preg_match_all ('/=(.*)#aaa(.*)/',$str,$arr);
Даст
text
22
Но если строка $str = "http://localhost/#qwerty=text";
Ничего не выдаст, как сделать так чтобы выдавало? =)
|
|
|

11.09.2009, 16:16
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Сообщение от KaMiKadZe
PHP код:
$str = "http://localhost/#qwerty=text#aaa22";
preg_match_all ('/=(.*)#aaa(.*)/',$str,$arr);
Даст
text
22
Но если строка $str = "http://localhost/#qwerty=text";
Ничего не выдаст, как сделать так чтобы выдавало? =)
PHP код:
<?php
$str = "http://localhost/#qwerty=text";
preg_match_all ('/=(.*)#aaa(.*)|=(.*)/',$str,$arr);
print_r($arr);
?>
$match[1] и $match[2] - где 2 аргумента
$match[3] - где 1 аргумент
|
|
|

12.09.2009, 23:46
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
PHP код:
$test = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7.30:8.9.19.21:10.12.17:11.26:16:23:29:';
Необходимо вытащить все вхождения:
:цыферки:
Получаеться только через 1 
// Неактуально,но хочеться увидеть регексп,для общего.
Последний раз редактировалось m0Hze; 12.09.2009 в 23:48..
|
|
|

12.09.2009, 23:53
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Сообщение от m0Hze
PHP код:
$test = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7.30:8.9.19.21:10.12.17:11.26:16:23:29:';
Необходимо вытащить все вхождения:
:цыферки:
Получаеться только через 1 
// Неактуально,но хочеться увидеть регексп,для общего.
PHP код:
<?php
$test = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7.30:8.9.19.21:10.12.17:11.26:16:23:29:';
$regex = '/\:([\.\d]+)/';
preg_match_all($regex, $test, $match);
print_r($match);
?>
p.s. поправил. Спасибо Gift =)
или вначале убираем с концов ':' и через explode(':', $test);
Последний раз редактировалось FireFenix; 13.09.2009 в 01:49..
|
|
|

13.09.2009, 01:15
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
m0Hze
PHP код:
$str = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7.30:8.9.19.21:10.12.17:11.26:16:23:29:';
preg_match_all('#(?<=:)[^:]+(?=:)#si',$str,$res);
var_dump($res);
// Или если обрамляющего текста нет, то вообще так:
preg_match_all('#[^:]+#si',$str,$res);
var_dump($res);
FireFenix Опять таки, ваша регулярка будет через раз одно числа получать
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|