Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражения, обучение 
:(
    Опции темы
PARROT
Дата 10.6.2005, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Купила книгу "Регулярные выражения", читаю, хорошо написано, почти все понятно. А вот на практике применять пока негде.
Может Вы мне будете сюда постить задания? Начиная с несложных конечно. smile
А я тут буду оставлять свои вопросы, что не поняла. smile
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Кому нужен, тестер для проверки правильности написания регулярных выражений, можно скачать тут http://www.forta.com/books/0672325667/RegE..._JavaScript.zip
Тестер написан на языке яваскрипт. Хорошая штука.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Это сообщение отредактировал(а) PARROT - 11.6.2005, 13:16


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Black
Дата 11.6.2005, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



PARROT
интересно как ты вырежись из строки логин в чате???
строка имеет следующую структуру:

___[логин]: фраза такая длинная вся

я хочу чтобы на выходе получили 'логин', причем впереди может быть любое количество пробелов.
Символ _ заменяет пробел для наглядности.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 11.6.2005, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



1. В строке только латинкисе буквы.
2. В строке только латинские буквы отдельно заглавные, отдельно прописные.
3. Пять раз буква G, еще 4 любых символа (но не перевод строки), буква H, перевод строки, фраза "PARROT - THE BEST" smile
4. Строка без пробелом.
5. В начале строки и в конце символы F, по середине не может быть L,K,J,H.
6. В начале строки и в конце символы F, по середине не может быть L,K,J,H, причем середина 6 символов.

Но это простые. Дальше сложнее будет smile
PM ICQ   Вверх
PARROT
Дата 11.6.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



PHP-DIRECTOR
Код

[\s+]\[[\w+]\]\:*

[\s+] -любой пробельный символ
\[             - получаем квадратную скобку
[\w+]      - набор любой алфавитно-цифровой символ, но не точка
\]            - получаем вторую квадратную скобу (просто скобка не пойдет, нужно экранировать)
\:            - двоеточие
*            - любой символ ноль или более раз

Если чего не так написала, объясните пожалуйста.

Исправилась smile

Это сообщение отредактировал(а) PARROT - 11.6.2005, 01:05


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 11.6.2005, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Ты что читаешь-то? POSIX чтоли? smile Perl'овые учи лучше.. Они в 80% случаев быстрее работают.

Это сообщение отредактировал(а) Mal Hack - 11.6.2005, 00:41
PM ICQ   Вверх
PARROT
Дата 11.6.2005, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack
Код

1) [^0-9] соответствует чему угодно, кроме цифр указанного диапазона
    [a-zA-Z]
2)[A-Z] [a-z] // не очень поняла...
3) [G]{5}\w{4}[H][\r]?\n\b"PARROT - THE BEST"\b

Проверьте пока это, пожалуйста smile
Продолжение следует завтра.
С Уважением, PARROT
Добавлено @ 01:02
Цитата(Mal @ 11.6.2005, 01:41)
Ты что читаешь-то? POSIX чтоли? smile Perl'овые учи лучше.. Они в 80% случаев быстрее работают.

В книге маленькая глава посвещена этому POSIX, я написала так, потому как незнаю, как написать иначе...пока незнаю.

Это сообщение отредактировал(а) PARROT - 11.6.2005, 10:47


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 11.6.2005, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(PARROT @ 11.6.2005, 02:00)
В книге маленькая глава посвещена этому POSIX, я написала так, потому как незнаю, как написать иначе...пока незнаю.

Лучше сразу Perl учи...
http://detail.phpclub.ru/article/simple_regular
http://detail.phpclub.ru/article/regexp_1
http://detail.phpclub.ru/article/regexp_2
http://ru3.php.net/manual/ru/reference.pcr...n.modifiers.php
http://ru3.php.net/manual/ru/reference.pcr...tern.syntax.php
PM ICQ   Вверх
PARROT
Дата 11.6.2005, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Цитата(Mal @ 11.6.2005, 02:24)
POSIX

Да в книге и есть Perl-ловые, просто это как вариант, но написано, что ими не польхуются.

Я так и не поняла, правильно я написала или нет?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Black
Дата 11.6.2005, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



PARROT
Цитата
[\s+]\[[\w+]\]\:*

это скажем, так не оч. правильно. Есть такая штука как карманы, вот она и позволяет вырезать части строки. Надо взять в ()

Цитата
Да в книге и есть Perl-ловые, просто это как вариант, но написано, что ими не польхуются.

да, они устарели, однако работают быстрее и почти аналогичны по возможностям с POSIX. Но так как быстрее их и надо пытаться выучить.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 11.6.2005, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(PHP @ 11.6.2005, 13:29)
да, они устарели

Это почему???
PM ICQ   Вверх
PARROT
Дата 11.6.2005, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack, вот 3 вариант:
Код

[G]{5}\w{4}[H]\r\n\"PARROT\-THE\sBEST\"



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 11.6.2005, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



4 любых символа я имел ввиду и цифра и запятые и т.п.
ЗЫ: Я POSIX-то плохо знаю smile)) smile
PM ICQ   Вверх
PARROT
Дата 11.6.2005, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



PHP-DIRECTOR, так правильно?
Код

\s+\[логин\]\:\фраза



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Black
Дата 11.6.2005, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Mal Hack
не знаю.. везде так пишут. Я иногда книги новые листаю там везде пишут про POSIX уделяя мало места Perl'y.

Даже в книге Котерова что-то про них отрицательное сказано. Точно не помню.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
PARROT
Дата 11.6.2005, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack, так 3:
Код

[G]{5}\,\w{4}\,[H]\,\r\n\,\"PARROT\-THE\sBEST\"



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Black
Дата 11.6.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Цитата
\s+\[логин\]\:\фраза

все равно это немного не то, я бы так решил свою задачу:

Код

<?
$str = " fgfsg [admin]: fer fgdf fgdfgdf fwf";
if(ereg(".*\[([a-zA-Z0-9]{1,})\]:.*", $str, $matches))  {}
else { echo "Нет совпадений"; }
echo "$matches[1]";
?>


Тоже использую POSIX smile


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
IZ@TOP
Дата 11.6.2005, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 2
Всего: 73



PHP-DIRECTOR, а как на счет строки "________[IZ@TOP]: А я тут подумал и решил написать проверочку ___[ADMIN]: Ha-ha-ha...".
Добавлено @ 14:33
PHP-DIRECTOR, этот прег пожалуй должен работать без проблем:

Код

preg_match("|\[(.*?)\]\:.+|s", $str, $matches)

Добавлено @ 14:35
А на счет того что PCRE это оцтой, я скажу что это выдумки тех людей которые изучили POSIX стандарт и не могут понять PCRE. Я когда новичком был использовал POSIX и в данный момент считаю его именно "для новичков".


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
PARROT
Дата 11.6.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



PHP-DIRECTOR, дело в том что в книге до использования ereg я еще не дошла.
Думаю сначала нужно научиться понимать, то что пишешь, то есть изьясняться на REGESP.
А вот позже, займемся функциями замены и т.д.
И как говорится в книге, что единственно правильного решения не бывает, главное что бы оно было правильным!
Ну что ж продолжим?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
PARROT
Дата 11.6.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack, далее:
Код

4. [\w]
    [a-zA-Z] //тут вариантов может быть много
5. ^[F][^LKJH][F]$// поидее он должен работать, так как [^LKJH] означает все кроме этого, просьба разжевать, плиз.
6. ^[F.][^LKJH][.F]$// тоже объясни плиз, точка  это любой символ.

   .   любой символ
   ^ начало строки
   $  конец строки



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Black
Дата 11.6.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



IZ@TOP
Цитата
PHP-DIRECTOR, а как на счет строки "________[IZ@TOP]: А я тут подумал и решил написать проверочку ___[ADMIN]: Ha-ha-ha...".

не понял??? нормально все вырезается... не вырежется только если будут символы перевода строки, которых не бывает в чате. А так все что хочешь пиши будет работать smile

Сам проверь:

Код

<?
$str = "___[ADMIN]: Ha-ha-ha...";
if(ereg(".*\[([a-zA-Z0-9]{1,})\]:.*", $str, $matches))  {}
else { echo "Нет совпадений"; }
echo "$matches[1]";
?>


возвращает ADMIN

А то что Изапота не пускает так есть символ @ - а он типа запрещен smile (IZ@TOP)

Это сообщение отредактировал(а) PHP-DIRECTOR - 11.6.2005, 16:36


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Aliance
Дата 13.6.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 2
Всего: 137



Если было - сильно не бейте. Вот чтобы мне пригодилось:
  • поиск ссылки и подстановка к ней http://
  • поиск спец. символов и их замена на Юникод (" == &quot; ... © == &copy; и т.д....)
Спасибо =)
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 13.6.2005, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(Aliance @ 13.6.2005, 18:39)
поиск спец. символов и их замена на Юникод (" == &quot; ... © == &copy; и т.д....)

Это через str_replace лучше сделать.

Цитата(Aliance @ 13.6.2005, 18:39)
поиск ссылки и подстановка к ней http://

http://forum.vingrad.ru/index.php?showtopi...view=getnewpost там глянь. Тебе нужно просто найти что-то не с http:// и заменить через preg_replace на тоже с http:// впереди.
PM ICQ   Вверх
PARROT
Дата 13.6.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack, можно объяснить более подробно?
Мы же тут учимся. Я например незнаю как найти ссылку и подставить к ней http:
Как выглядит ссылка? Как подставить? smile
Всю книгу перекопала, нашла все кроме того что нужно.
Плиз, а? smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 13.6.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Ну как же девушке можно отказать.. Вот тебе и задание.
Ссылка - это набор латинских символов, точек и дефисов, причем не может начинаться с - или точки и заканчиваться..
Выше я ссылки привел на примеры.
Если хочешь можешь сама поломать голову.
Личноя точно помню, что нормальный рэг на ссылки я написал раз на 20.
Добавлено @ 20:10
В догонку.. Ссылка (домен) заканчивается на . и два - четыре латинских символа.
PM ICQ   Вверх
PARROT
Дата 13.6.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



http[s]?:[//\w.][\w_-.][\w.][\w]{2,4} Это писала без книги, ща напишу с книгой.
А куда дефис толкать?

Вот мой нашелся так:
Код

http[s]?://[\w.]+[\w.]+[\w.]+[\w]{2,4}

http://www.traktora.spb.ru

А вот с подчеркиванием и тире:
Код

http[s]?://[\w.]+[\w_.]+[\w.]+[\w]{2,4}

http://www.traktora_avtodiesel.spb.ru

Код

http[s]?://[\w.]+[\w-.]+[\w.]+[\w]{2,4}
http://www.traktora-avtodiesel.spb.ru

Код

http[s]?://[\w.]+[\w-.]+[\w.]+[\w]{3}
https://www.traktora-avtodiesel.com

А что значит нормальный Рег? И как найти ссылку, добавив http:// ???

Это сообщение отредактировал(а) PARROT - 13.6.2005, 20:47


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 14.6.2005, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Эээ... Извиняюсь! Можно мне вмешаться? Я тоже решил попробовать поучить регулярки, вот, попробовал написать код запрета html-тегов (результат - все теги стираются):
Код

<form method=post>
<h4>Запрет на html-теги</h4>
<textarea name="text3"></textarea><br>
<input type="submit" name="submit3">
</form>

Код

if(isset($_POST['submit3']))
{
 if(ereg("[&<>/\]",$text3))
 {
 echo "Вы использовали html-теги! Они будут стерты.<br>";
 $newtext3=ereg_replace("[&</\([:alnum:]+)>]","",$text3);
 echo "Все исправлено. Исправленный текст:<br>$newtext3";
 }
 else echo "HTML-теги не использовались. Вы ввели:<br>$text3";
}

Прошу оценить - правильно ли все? Я его как написал, этот код, сейчас даже сам не вполне понимаю, почему он работает... smile
Кстати, еще вопросы по регуляркам:
1) Как в регулярках учесть пробелы?
2) Задача: есть файл. Нужно считать его и заменить все символы "[]" на символы "<>". Я понимаю, надо ereg_replace использовать, только как в этот ereg_replace подставить строчки файла? Не понимаю. Прошу помочь и оценить!


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 14.6.2005, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



sim7, а мой тестер на твою регулярку сильно ругается!
Ты искал совпадение?
Мой тестер совпадения не нашел!
Можешь объяснить мне свою регулярку?
Для чего и какие символы ты использовал в написании?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 14.6.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Цитата
[&</\([:alnum:]+)>]

smile Объяснить? Ну, хорошо. Значит, стираются символы амперсанда, а также все символы (включая буквы и цифры), находящиеся между <>. Между <> также могут быть слэши. Потом, на локальном сервере у меня все работает без проблем. Пробовал набирать "&quot" (без кавычек), а также любые последовательности между < и >. Все стиралось, включая и эти самые <>. Сочетание &quot также стирается полностью. Все работает на "ура", по крайней мере, у меня.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 14.6.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



sim7, вместо [:alnum:], лучше писать так [a-zA-Z0-9]
POSIX............... Лучше Perl-овый PRCE, будет работать везде.

Вопрос: А что ты искал?
Зачем стирать? Нужно просто запрещать пользоваться тегами, где это не положено, помоему... или я не права?
Стереть проще так $nm=strip_tags($nm);


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 14.6.2005, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Это я просто тренируюсь, со стиранием. Я ж говорю, только сегодня начал пробовать регулярку учить. Поэтому и стараюсь усложнять до своего максимума. Чтобы затрагивать и другие функции тоже. Можно было, конечно, написать и так:
Код

if(ereg("[&<\/[a-zA-Z0-9]>]",$text3))
{
echo "HTML запрещен!";
exit;
}

Просто мне хотелось с перезаписью.
А можете ответить на вопросы, которые я задавал в первом посте? Как делать пробелы и как выполнить описанную мной задачу?
Плюс еще вопрос. Как заставить регулярку учитывать последовательность возможных совпадений? Например, чтобы сначала шло <, потом / или \, потом цифра/буква и т.д.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Mal Hack
Дата 14.6.2005, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(PARROT @ 13.6.2005, 21:29)
А что значит нормальный Рег?

Тот который будет находить именно то, что тебе нужно.

Цитата(PARROT @ 13.6.2005, 21:29)
И как найти ссылку, добавив http:// ???

Не понял

Цитата(PARROT @ 13.6.2005, 21:29)
http[s]?://[\w.]+[\w-.]+[\w.]+[\w]{3}
https://www.traktora-avtodiesel.com

А числа, которын тоже в имени домаена могут быть где?

Цитата(sim7 @ 14.6.2005, 17:15)
попробовал написать код запрета html-тегов (результат - все теги стираются):

А не проще юзать htmlspecialchars? smile
PM ICQ   Вверх
mr.Anderson
Дата 14.6.2005, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



А она что-то не работает у меня. Пишу:
Код

$nm="<br>123";
$nm=htmlspecialchars($nm);
echo $nm;

И выводится та же строчка с тегами. Почему-то.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Mal Hack
Дата 14.6.2005, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Но тэги тэгами уже не являются smile
PM ICQ   Вверх
PARROT
Дата 14.6.2005, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



А не проще $mail=strip_tags($mail); ?
В этом случае он точно теги вырезает, проверено на себе!


sim7, почитай вот тут http://docs.com.ru/php_1_8.php
Добавлено @ 20:05
Mal Hack, а какие числа?
Цитата

А числа, которые тоже в имени домена, могут быть, где?

Такие [a-zA-z0-9] ?
То есть вместо [\w]+, [a-zA-z0-9]+ ДА? smile

До меня уже доходит, не как до жирафа! Сразу.



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 14.6.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(PARROT @ 14.6.2005, 21:01)
То есть вместо [\w]+, [a-zA-z0-9]+ ДА? smile

Еще я про дефисы выше говорил smile
А еще \w\d можно smile
Добавлено @ 20:12
Кстати \w нельзя использовать, т.к. туда запятая напрмер входит.
PM ICQ   Вверх
korob2001
Дата 14.6.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



А что вы ищите??? Я что-то не понял условия. smile
Спасибо.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
PARROT
Дата 15.6.2005, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack, я не поняла, а в какой http входят запятые? Я че то таких не видела.
Я поставила запятую, чтобы разделить, как-то отделить 2 рега.
А рег с дефисами там был!
Добавлено @ 11:08
korob2001, мы учимся писать реги. Дают задание, а мы его выполняем. Последнее задание было таким, написать рег http, смотри выше условия.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
PARROT
Дата 15.6.2005, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack
Вот один:
Код

http[s]?://[\w.]+[a-zA-Z0-9-.]+[\w.]+[\w]{2,4}
http://www.traktora-avtodiesel.spb.ru

Второй, тоже с тире, но уже от a-z и.т.д.
Код

http[s]?://[\w.]+[a-zA-Z0-9-.]+[\w.]+[\w]{3}

Так канает? smile


Это сообщение отредактировал(а) PARROT - 15.6.2005, 13:58


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 15.6.2005, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Начинаться может как с буквы, так и с цифры, \w не канает по любому.
PM ICQ   Вверх
PARROT
Дата 15.6.2005, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Канает? см. выше.
Какие будут еще указания? Задания точнее.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 15.6.2005, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



PARROT попробуй что-то вроде http://,ya,.ru
PM ICQ   Вверх
PARROT
Дата 15.6.2005, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Странно, но вот что у меня получилось:
Код

http://[,a-zA-Z0-9.]+

http://,ya,.ru



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 15.6.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Ты где-ть видела ссылки с запятыми???
PM ICQ   Вверх
PARROT
Дата 15.6.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Так я ж думала, что мы еще рисуем... точнее учимся писать, а мы уже решили к функциям перейти?
А про под выражения не поговорим?
ОБЪЯВЛЕНИЕ:
(Для всех кто тут учиться)
Переходим ко второму уроку: Использование функций.
/////////////////////////////////////////////////////////////////////////
preg_grep() -функция которая выполняет поиск и возвращает массив совпадений;
preg_match() - выполняет поиск регулярного выражения до первого соответствия;
preg_match_all() - выполняет глобальный поиск;
preg_quote() - принимает шаблон и возвращает его защищенную версию;
preg_replace() - выполняет операцию поиска и замены;
preg_replace_callback() - выполняет операцию поиска и замены, но использует функцию обратного вызова для выполнения фактической 
замены;
preg_split() - разбивает строку на подстроки;
///////////////////////////////////////////////////////////////////////////////

Это сообщение отредактировал(а) PARROT - 15.6.2005, 15:58


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 15.6.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Mal Hack, про htmlspecialchars() понял и проверил. smile Спасибо.
PARROT А можно небольшое отступление? Я хочу написать проверку e-mail на правильность. Сам. Вот что у меня получилось:
Код

<form method=post>
<input type=text maxlength=150 name="email"><br>
<input type=submit name="ok">
</form>

Код

if(isset($_POST['ok']))
{
    if(empty($email))
    {
        echo "Введите e-mail!";
        exit;
    }
    if(!eregi("[[:alnum:]]+@{1}[[:alnum:]]\\.[[:alnum:]]{0,3}",$email))
    {
        $email_error="<center><h3><font color=red>Некорректный e-mail!</font></h3></center>";
        echo "$email_error";
        exit;
    }
    else /* Что-то делаем */
}

Проверьте, правильно ли?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 15.6.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



sim7, вместо [:alnum:], мы решили писать так [a-zA-Z0-9] и не использовать POSIX.
Исправь.

Я бы так написала:
Код

if(!eregi("^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[\w]+\.[\w]{0,3}$",$email))
    {
        $email_error="<center><h3><font color=red>Некорректный e-mail!</font></h3></center>";
        echo "$email_error";
        exit;
    }

Зачем @ одно вхождение, если понятно, что собак больше чем одной быть не может.
Защищать точку двумя слэшами не нужно.



Это сообщение отредактировал(а) PARROT - 15.6.2005, 17:01


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 15.6.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



1) У меня просто на локалке при тестировании [a-z0-9_] неправильно работает, поэтому я и оставил так.
2) А разве это POSIX? Это RegEX. Я по учебнику делал (фигурные скобки, то есть, по учебнику), там это называется RegEx.
А в остальном правильно?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 15.6.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



А так не надо: [a-z0-9_], надо так [a-zA-Z0-9] или [\w]
Так как ты пишешь, это POSIX, отставь его в сторону и почитай тему с первого сообщения, об этом уже говорилось.
Мой тестер нашел твое мыло только вот до сюда 1538733@t и все, далее ошибка.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 15.6.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(PARROT @ 15.6.2005, 18:08)
А так не надо: [a-z0-9_], надо так [a-zA-Z0-9] или [\w]

На самом деле надо [A-Z0-9-_] при i в модификаторах или [A-Za-z0-9-_] без модификатора i.
PM ICQ   Вверх
skalex
Дата 15.6.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



sim7, я вот такой regexp использую для проверки корректности e-mail:
Код
<?php
preg_match('/[0-9A-Za-z._-]+@([0-9a-z_-]+\.)+[a-z]{2,4}/', $email);
?>

PM   Вверх
Mal Hack
Дата 15.6.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Mace
________@_________.com - пропустит smile
ЗЫ: тыже вроде давал тут на форуме нормальные рэги smile
PM ICQ   Вверх
skalex
Дата 15.6.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Да, вот тут хоршая дискуссия была : http://forum.vingrad.ru/index.php?showtopic=46596
smile
PM   Вверх
Irokez
Дата 15.6.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PARROT @ 15.6.2005, 16:42)
вместо [:alnum:], мы решили писать так [a-zA-Z0-9] и не использовать POSIX.

и
Цитата(PARROT @ 15.6.2005, 16:42)
Я бы так написала:

Цитата(PARROT @ 15.6.2005, 16:42)
eregi...

smile
PM   Вверх
PARROT
Дата 15.6.2005, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Irokez, я функции еще не трогала. Толку хвататься за функции, если не можешь, не понимаешь как писать рег?
Я повторила условие sim7. Исправила его рег.
Предпочитаю учиться постепенно, а не хвататься сразу за все.
Так толку не будет. Тем более меня никто не гонит.

eregi - совпадение с регулярным выражением без учёта регистра символов.
И че не так? Знак вопроса перед... А зачем знак вопроса, действительно?

Лучше использовать preg_match - выполняет подстановку регулярного выражения, которая использует Perl-совместимый синтаксис регулярного выражения, работает часто быстрее, чем ereg().

Это сообщение отредактировал(а) PARROT - 15.6.2005, 20:01


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Irokez
Дата 15.6.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PARROT @ 15.6.2005, 19:54)
eregi - совпадение с регулярным выражением без учёта регистра символов.

не с любым регулярным выражением, а POSIX совместимым
PM   Вверх
PARROT
Дата 15.6.2005, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Irokez, давай лучше с тобой поговорим о под выражениях?

Я с POSIX не дружу! smile

Это сообщение отредактировал(а) PARROT - 15.6.2005, 20:05


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
skalex
Дата 16.6.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Как то раз нашел такой интересный момент в регулярных выражениях!
Например, последовательность символов [A-Za-z] можно кратко записать как [A-z].
Но как оказалось, в эту последовательность включается еще и символ подчеркивания "_" !
Показательный пример:
Код
<?php
echo (preg_match('%^[A-z]*$%', "A_b_C")) ? 'найдено' : 'ненайдено';
?>

PM   Вверх
PARROT
Дата 16.6.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Так ясно же написано, что [\w], что [a-zA-Z0-9_] включают в себя любой алфавитно-цифровой символ и символ подчеркивания.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
skalex
Дата 16.6.2005, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Ясно написано для \w ... Я говорил о [A-z]. В эту последовательность цифры не включены.
PM   Вверх
PARROT
Дата 16.6.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



[a-zA-Z0-9_] является шаблоном, в который входит символ подчеркивания.
Шаблон, это принятый образец, штамп.
Стоит ли его менять?

Другое дело набор. smile




--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 16.6.2005, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Так. Можно мне на задания поотвечать, Mal Hack? Вы их задали, а мы их толком и не разобрали. Или я не нашел?
В общем, вот мои ответы. По порядку. С использованием указанных у PARROT функций.
Задание первое. (В строке - только латынь)
Код

$str=preg_replace("/[^[a-z]+]/i","",$str,-1);

Задания второго я не понял смысла. (В строке только латынь - отдельно заглавные, отдельно прописные буквы).
Третье (пять раз буква G, затем 4 любых символа кроме перевода строки, далее буква H, перевод строки, фраза PARROT - THE BEST):
Код

if(!preg_match("/[G{5}[^\Z]{4}H[\Z]{1}PARROT - THE BEST/"))
   {exit;}

Четвертое (Строка без пробелов):
Код

$str=preg_replace("/\s/","",$str,-1);

Пятое (в начале и конце строки символы F, в середине не могут быть символы L,K,J,H):
Код

if(!preg_match("/^(F+)[^[L|K|J|H]+](F+)$/",$str))
   {exit;}

И шестое (аналогично пятому, только середина - 6 символов):
Код

if(!preg_match("/^F{5}[^[L|K|J|H]{1}F{5}$/",$str))
   {exit;}

Прошу проверить и оценить!

P.S. PARROT, это уже PCRE, да?

Это сообщение отредактировал(а) sim7 - 16.6.2005, 17:22


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 16.6.2005, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



sim7, отредактируй свое сообщение, добавь то, что ты искал и что ты нашел.
Так сложно судить. Не понятно че ты ищешь.

А зачем в наборе между буквами | ?


Это сообщение отредактировал(а) PARROT - 16.6.2005, 17:23


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 16.6.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



PARROT, готово!


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 16.6.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Мое мнение:
1 пример: лишние скобки перед началом строки.
Sim7, у тебя нет желания сначала научиться писать регулярки, а потом уже заниматься функциями? Скачай тестер, что я давала в первом посте.
2 задание тоже...
Что такое [^\Z] во втором примере? 4 любых символа? То есть или буква или цифра? [a-zA-Z0-9_]{4}
ПРоверяй тестером. Так быстрее дело пойдет.

Это сообщение отредактировал(а) PARROT - 16.6.2005, 17:38


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
mr.Anderson
Дата 16.6.2005, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



1. Нет, не лишние. У меня ведь такой смысл: переписать на "" все символы, кроме латинских букв. А символ ^ имеет значение "кроме" только в квадратных скобках.
2. \Z означает символ перевода строки или символ конца строки. Выражение [^\Z] означает "все символы, кроме перевода строки или конца строки".
С вашим тестером я не разобрался абсолютно.
Учиться мне пока не по чему. Когда куплю книгу, буду учиться. И потом, этот раздел называется "PHP: Уроки", а не "PHP: Практика". Так? То есть, здесь люди учатся! А не практикуются в том, что уже выучили! Так что с вашим мнением я абсолютно не согласен. Во всех отношениях и со всех сторон.
И еще: а что другие задания? Вы только два посмотрели. А указанные вами ошибки - не ошибки, как следует из моих объяснений.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Mal Hack
Дата 16.6.2005, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(sim7 @ 16.6.2005, 17:21)
Задание первое. (В строке - только латынь)

[] - лишние.

Цитата(sim7 @ 16.6.2005, 17:21)
Третье (пять раз буква G, затем 4 любых

Вообще синтасически не верен. smile

Цитата(sim7 @ 16.6.2005, 17:21)
Четвертое (Строка без пробелов):

Задания не понял smile Смысл в том, что в строке могут быть любые символы кроме пробелов,

Цитата(sim7 @ 16.6.2005, 17:21)
Пятое (в начале и конце строки символы F, в середине не могут быть символы L,K,J,H):

ini_set( 'display_errors' , '1' );
error_reporting(E_ALL);ожно упростить.

Цитата(PARROT @ 16.6.2005, 18:18)
А зачем в наборе между буквами | ?

Или. только это должно не внутри [] а внутри () указываьтся


sim7
PARROT
Ждите до выходных, сделаю вам список заданий, и сравним кто больше и правильнее сделает (аля окнкурс с голосованием).. Пока практикуйтесь smile
PM ICQ   Вверх
mr.Anderson
Дата 16.6.2005, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Задание третье - почему? smile
А у меня и стоит - стереть все пробелы. Посмотрите внимательней. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Mal Hack
Дата 16.6.2005, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(sim7 @ 16.6.2005, 19:56)
Задание третье - почему? smile

Посчитай кол-во [ и ]
PM ICQ   Вверх
mr.Anderson
Дата 16.6.2005, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Ой. smile Сейчас поправлю...
Будет вот так:
Код

if(!preg_match("/[G{5}[^\Z]{4}H[\Z]{1}]PARROT - THE BEST/"))
   {exit;}

Добавлено @ 19:12
Так? Или нет?
И еще: что можете посоветовать почитать про PCRE в интернете (на русском языке)?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
PARROT
Дата 16.6.2005, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Mal Hack
Мне нужны знания. Так что меня можно вычеркивать.
Задания жду. Книгу читаю. Пишу.
С Уважением, PARROT.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Рыжий
Дата 16.6.2005, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



хм, а можно к вам присоединиться?
Только больно ногами не бейте я еще не спец в этом smile
PM MAIL ICQ   Вверх
mr.Anderson
Дата 16.6.2005, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Давайте! Я ведь тоже начинающий. ;)


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Mal Hack
Дата 16.6.2005, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



PARROT не думай, что я легкие задания давать буду smile
PM ICQ   Вверх
PARROT
Дата 16.6.2005, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



А мы легких путей не ищем! Не получится сегодня, получится завтра. Зато после, не будет на нашем форуме, от нас же вопросов: Поможите написать регулярку!
А регулярка Рулез!!! smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 16.6.2005, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



http://forum.vingrad.ru/index.php?act=ST&f...=55764&unread=1
Вуаля.. Подумал я тут, что в выходные времени не будет smile))
PM ICQ   Вверх
PARROT
Дата 16.6.2005, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



PHP-Script, присоединяйся.
Сделай пока задания, данные Mal Hack, см. посты выше. Для разминки.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Рыжий
Дата 16.6.2005, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Сделал пока задания Mal-hack'a - но я не смотрел все тему (ответы других я не видел, то есть у меня могут быть распространенные ошибки smile )

Цитата
1. В строке только латинкисе буквы.
2. В строке только латинские буквы отдельно заглавные, отдельно прописные.

5. В начале строки и в конце символы F, по середине не может быть L,K,J,H.
6. В начале строки и в конце символы F, по середине не может быть L,K,J,H, причем середина 6 символов.


Начнем:
1. [a-zA-Z] или можно [a-Z]
2. [a-z]|[A-Z]
5. ^[F]+[LKJH]+[F]$
6. ^[F]+[LKJH{1,6}]+[F]$

Конечно же возникнут ошибки - буду рад выслушать все предложения smile
PM MAIL ICQ   Вверх
korob2001
Дата 16.6.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

korob2001, мы учимся писать реги. Дают задание, а мы его выполняем. Последнее задание было таким, написать рег http, смотри выше условия.

А можно и я поучавствую? smile Ну или задание дам???

Это сообщение отредактировал(а) korob2001 - 16.6.2005, 21:46


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Mal Hack
Дата 16.6.2005, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



5,6 не правильные.
Добавлено @ 21:48
korob2001
Цитата(Mal @ 16.6.2005, 20:45)
http://forum.vingrad.ru/index.php?act=ST&f...=55764&unread=1

а на счет задания.. Ну пусть пока с этими разберуться, потом чсожем что-ть по сложнее придумать.. Мыслишкит уже есть smile
PM ICQ   Вверх
korob2001
Дата 16.6.2005, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

http://forum.vingrad.ru/index.php?act=ST&f...=55764&unread=1

А там нужно будет потом приводить только строку шаблона или полный код на PHP?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Mal Hack
Дата 16.6.2005, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(korob2001 @ 16.6.2005, 23:08)
А там нужно будет потом приводить только строку шаблона или полный код на PHP?

Шаблона достаточно. Когда буду через Тестер пропускать легче будет smile
PM ICQ   Вверх
korob2001
Дата 16.6.2005, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Mal Hack - несколько вопросов:

В задании номер 2, массив содержит произвольные строки где нужно отловить все цены где есть число, возможно десятичное, за которым следуют символы USD, RUR или EU, все остальные ( например: 154.49 BEF ) нужно игнорировать.
Я правильно понял условие?
Если вместо десятичной точки будет запятая, пропускать такую цену?

В задании номер 3, если встретится относительный путь его не учитывать?
Например:
/cgi-bin/test/test.pl?h=12str=def
test.php?int=107
../www/index.phtml

Это сообщение отредактировал(а) korob2001 - 16.6.2005, 22:54


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Mal Hack
Дата 16.6.2005, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Цитата(korob2001 @ 16.6.2005, 23:50)
все остальные ( например: 154.49 BEF ) нужно игнорировать.

Да.

Цитата(korob2001 @ 16.6.2005, 23:50)
Если вместо десятичной точки будет запятая, пропускать такую цену?

Да, пропускать. Обычно все-таки точка ставится.
Но еслии сделаешь еще и с запятой пойдет в плюс.

Цитата(korob2001 @ 16.6.2005, 23:50)
В задании номер 3, если встретится относительный путь его не учитывать?

если БЕЗ домена, то НЕ учитывать.

ЗЫ: Вопросы по той теме сразу тада пишите: http://forum.vingrad.ru/index.php?showtopic=55764
PM ICQ   Вверх
Рыжий
Дата 17.6.2005, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Mal Hack
Вот мой исправленный 5:

Код

^[F][LKJH]{1,}[F]$


Четвертое задание непонятно:
Цитата(Mal @ 10.6.2005, 23:10)
4. Строка без пробелом.

Для этого в PCRE есть код:

Код

\S


И самое затруднительное было 6:

Код

^[F][LKJH]{1,6}[F]$

Надеюсь все сработает smile

Это сообщение отредактировал(а) PHP-Script - 17.6.2005, 13:23
PM MAIL ICQ   Вверх
Mal Hack
Дата 19.6.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



1. там было написано по середине не может быть L,K,J,H, у тебя наоборот
2. [F] зачем? просто F.


Цитата(PHP @ 17.6.2005, 14:23)
{1,6}

это 1 или 6 smile
PM ICQ   Вверх
Irokez
Дата 20.6.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



а может попробовать сделать генератор регулярных выражений smile
мы ему даем множество строк и предполгемый результат ... а он нам рег ...
PM   Вверх
Рыжий
Дата 20.6.2005, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: 1
Всего: 20



Irokez
Есть такая функция sql_regcase только она плохо сделана, слишком нерациональные у нее регулярки выходят smile
PM MAIL ICQ   Вверх
Irokez
Дата 20.6.2005, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PHP @ 20.6.2005, 14:26)
Есть такая функция sql_regcase только она плохо сделана, слишком нерациональные у нее регулярки выходят

да она просто все буквы заменяет на класс из этой буквы в нижнем и верхнем регистре - это неинтересно... надо такую чтобы более менее нормальный рег давала
PM   Вверх
Bikutoru
Дата 21.6.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 3
Всего: 22



Irokez, так это ж прям искусственный интеллект какой-то...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Irokez
Дата 21.6.2005, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(Bikutoru @ 21.6.2005, 15:54)
Irokez, так это ж прям искусственный интеллект какой-то...

ну дык, мы на мелкие задачки не размениваемся smile
PM   Вверх
Bikutoru
Дата 21.6.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 3
Всего: 22



Но эта задача упирается в огромные вычислительные затраты (если делать что-то сложнее [aA][bB]). С деревом перебора мучиться придется (другого пути я не вижу)...
Да и очень сомневаюсь, что штука сколько-нибудь путная выйдет. Компьютер же "тупой", соображать не умеет smile...


Это сообщение отредактировал(а) Bikutoru - 21.6.2005, 16:50


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Irokez
Дата 21.6.2005, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(Bikutoru @ 21.6.2005, 16:47)
Да и очень сомневаюсь, что штука сколько-нибудь путная выйдет. Компьютер же "тупой", соображать не умеет

ладно, я вечером дома попробую... что получится, выложу тут... (если получится..)
PM   Вверх
Bikutoru
Дата 21.6.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 3
Всего: 22



Irokez, любопытно будет посмотреть... Я тоже подумаю, может что-нибудь и надумаю...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
mclight
Дата 9.7.2005, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 6.7.2005
Где: Baku, Azerbaijan

Репутация: 1
Всего: 2



есть файл закодированный некоей программой....но мало по малу встречаются символы Англ алфавита. надо союрать оттуда всю инфу и распределить по массивам.например:
Author=>Bush
Description=>White House

ну понятно надеюсь.
--------------------
Как я решал подводные камни Cakephp и не только
PM WWW ICQ MSN   Вверх
Mal Hack
Дата 9.7.2005, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



А в чем проблема-то?
PM ICQ   Вверх
alligator
Дата 24.8.2005, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



я бы тоже непротив поучавствовать , только если будете давать задания сразу сложно не давайте а то я только сёдня закончил читать мануалы
PM MAIL   Вверх
CyClon
Дата 6.4.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: 1
Всего: 4



Из заданий могу предложить написать функцию для проверки E-Mail + Проверка логина (Разрешенные символы на свое усмотрение).


--------------------
user posted image
PM   Вверх
skalex
Дата 6.4.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 0
Всего: 23



Цитата
Из заданий могу предложить написать функцию для проверки E-Mail ...


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

http://forum.vingrad.ru/index.php?showtopic=46596
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.1665 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.