Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Необходимо универсальное регулярное выражение

Сообщения:  [1-10]   [11-12] 

 
 автор: cheops   (07.06.2006 в 22:20)   письмо автору
 
   для: Владимир22   (07.06.2006 в 14:32)
 

Тире и подчёркивание обозначают тире и подчёркивание в имени файла, i - это модификатор, который сообщает, что регулярное выражение должно искаться без учёта регистра, поэтому диапазон A-Z можно опустить. $ - это привязка к концу слова, а ^ - к началу - иначе регулярное выражение найдёт соответствие в середине и отропартует, что всё в порядке.

   
 
 автор: xexe   (07.06.2006 в 22:06)   письмо автору
 
   для: Владимир22   (07.06.2006 в 14:32)
 

http://www.softtime.ru/dic/id_group=3&id_dic=133

   
 
 автор: Владимир22   (07.06.2006 в 14:32)   письмо автору
 
   для: cheops   (07.06.2006 в 01:41)
 

Да, про цифры я забыл. Вот подправил самостоятельно.
<?php 
  $str 
"file.txt"
  
$pattern "|^[-_a-zA-Z0-9]+\.[a-z]+$|i"
  if(!
preg_match($pattern,$str)) 
  { 
    exit(
"Ошибка в формате файла"); 
  } 
?>

Только зачем в расширении было "тире" и "подчёркивание" [-_a-z] ?? И ещё в названии файла должны быть слэши, конечно же.
Если можно, посмотрите что в этом коде не так и объясните, опять-таки,если не сложно, для чего в конце +$|i ??? Доллар - это конец строки, а |i зачем? Спасибо заранее.

   
 
 автор: Trianon   (07.06.2006 в 13:38)   письмо автору
 
   для: cheops   (07.06.2006 в 11:42)
 

Тапочек шутит. А Вы ведетесь:)

   
 
 автор: cheops   (07.06.2006 в 11:42)   письмо автору
 
   для: valenok   (07.06.2006 в 07:43)
 

Это не совсем корректно, запросто создал файл с имнем 555 - более того в файле может быть любое количество точке, например 555.555.555 тоже вполне допустимое имя.

   
 
 автор: valenok   (07.06.2006 в 07:43)   письмо автору
 
   для: cheops   (07.06.2006 в 01:41)
 

Нет. Их в файле как и более чем одной точки быть конечно не может...

   
 
 автор: cheops   (07.06.2006 в 01:41)   письмо автору
 
   для: Владимир22   (06.06.2006 в 17:56)
 

Можно воспользоваться следующим регулярным выражением
<?php
  $str 
"file.txt";
  
$pattern "|^[-_a-z]+\.[-_a-z]+$|i";
  if(!
preg_match($pattern,$str))
  {
    exit(
"Ошибка в формате файла");
  }
?>

PS А цифры не нужны?

   
 
 автор: Владимир22   (07.06.2006 в 01:17)   письмо автору
 
   для: valenok   (07.06.2006 в 00:38)
 

Потому что в файле может быть только одна точка - перед расширением.

   
 
 автор: valenok   (07.06.2006 в 00:38)   письмо автору
 
   для: Владимир22   (07.06.2006 в 00:34)
 

какую точку ты имел в виду - я понял
почему только одну?

   
 
 автор: Владимир22   (07.06.2006 в 00:34)   письмо автору
 
   для: valenok   (06.06.2006 в 23:53)
 

Точка, которая стоит перед расширением. Она, вроде как, одна может быть (на локальном компьютере).

   

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования