HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 06.09.2009, 20:15
Linuxoid
Участник форума
Регистрация: 13.02.2007
Сообщений: 205
Провел на форуме:
928552

Репутация: 55
Отправить сообщение для Linuxoid с помощью ICQ
По умолчанию

А как регуляркой выразить md5 хеш? То есть на странице находится много md5 хешей маски [a-f0-9]{32}... Надо их все собрать...
Регулярки пытаюсь осваивать, но очень много вопросов пока...

Последний раз редактировалось Linuxoid; 06.09.2009 в 20:21..
 
Ответить с цитированием

  #2  
Старый 06.09.2009, 20:26
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


Отправить сообщение для wildshaman с помощью ICQ
По умолчанию

PHP код:
<?php
$str
="тут страница";
preg_match_all("|([a-f0-9]{32})|is"$str$ret);
print_r($ret);
?>
 
Ответить с цитированием

  #3  
Старый 06.09.2009, 22:37
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

как из текста удалить все комментарии вида /* */ ?
комментарии могут быть такими: /** /* /*** * /*ф* ***/

кое-что уже пробовал:

~/\*{2,}/~
~/\*+(.*?)*\*+/~s

первое удаляет это: /****/ второе удаляет все остальные случаи..
но как-то я не совсем уверен в 100% работоспособности

может кто подскажет способ получше?
и объясните пожалуйста, что означает ".*?" ?
 
Ответить с цитированием

  #4  
Старый 07.09.2009, 23:11
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

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

  #5  
Старый 07.09.2009, 00:20
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

imajo.ati
PHP код:
preg_replace('#\s/\*[\s\S]*\*/\s#U','',$str); 
http://ru.wikipedia.org/wiki/Regexp - читать раздел "жадная и ленивая квантификация"
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm

Последний раз редактировалось Gifts; 07.09.2009 в 19:35..
 
Ответить с цитированием

  #6  
Старый 07.09.2009, 19:13
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

Цитата:
Сообщение от Gifts  
imajo.ati
PHP код:
preg_replace('#\s/\*[\s\S]*\*/\s#','',$str); 
http://ru.wikipedia.org/wiki/Regexp - читать раздел "жадная и ленивая квантификация"
PHP код:
<?php

$str 
'/* hello */ world! /* 123 */';
echo 
preg_replace('#\s/\*[\s\S]*\*/\s#','',$str);

?>
твой регэксп не работает, не удаляет ничего.

за жадную квантификацию спасибо, уже читаю.
 
Ответить с цитированием

  #7  
Старый 07.09.2009, 19:35
Gifts
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
 
Ответить с цитированием

  #8  
Старый 07.09.2009, 19:40
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

PHP код:
<?php

$text 
'
/*
абабаббабаб
*/
тут код проги
/** ещё один камент **/
текст
/***
 ещё один глупый камент 
 ***/
здесь могла быть ваша реклама!'
;

$result preg_replace('/(\/\*.*?\*\/)*/ims'''$text);

echo(
$result);

?>
мой вариант +)
 
Ответить с цитированием

  #9  
Старый 08.09.2009, 10:05
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

astrologer,
спасибо за замечание, я уже был в курсе этого, когда просил регулярное выражение.

в планы входит сначала заменить все строки в тексте на что-то такое:
%STRING_000001_(md5_заменённой_стро и)_(случайное_число_прохода _парсера)%
а потом удалить все комментарии.

может быть выскажешь свои мысли по этому поводу? будет ли это работать?
 
Ответить с цитированием

  #10  
Старый 09.09.2009, 01:10
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от imajo.ati  
в планы входит сначала заменить все строки в тексте на что-то такое:
%STRING_000001_(md5_заменённой_стро и)_(случайное_ число_прохода_парсера)%
а потом удалить все комментарии.
Не получится, причём по той же причине (выяснение которой, как всегда, остается читателю).

P.S.
Цитата:
/(\/\*.*?\*\/)*/ims
Цитата:
#\s/\*[\s\S]*?\*/\s#
Код:
~/[*](?:[^*]++|[*](?![*]))*[*]/~
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 6762 17.06.2010 21:23
Всё о беспороводном соединении на кпк и смартфонах! Задай вопрос - получи ответ! ARMENIN Беспроводные технологии/Wi-Fi/Wardriving 2 02.11.2008 00:40



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ