Forum Webscript.Ru

Программирование => PHP => Тема начата: FILA от 31 Июля 2002, 12:22:27

Название: Регулярные выражения
Отправлено: FILA от 31 Июля 2002, 12:22:27
Проблема в следующем:
есть некая строка, в которой могут быть пробелы и спецсимволы
какая регулярка должна использоваться в eregi_replace(preg_replace), чтобы заменяла каждый встреченный пробел на пустоту и каждый встреченный спецсимвол на _    ?
заранее благодарен за помощь
Название: Регулярные выражения
Отправлено: Alexandr от 31 Июля 2002, 13:08:13
Пробел на пустоту:
$str=str_replace(" ", "", $str);
А спец. символ (правда не знаю что есть спец. символ):
preg_replace("/[^\\x20-\\xFF]/","_",@strval($str));
Вроде так.
:confused:
Название: Регулярные выражения
Отправлено: GotZfild от 31 Июля 2002, 13:38:18
Цитировать
preg_replace("/[^\\x20-\\xFF]/","_",@strval($str));

$str = preg_replace("![^\\w]!", "_", $str);
Название: Регулярные выражения
Отправлено: 017 от 31 Июля 2002, 14:02:04
Косяк в том, что и мой, и приведенный ниже пример работает когда строка задана явно : $str = "aaaaaaaaaaa;;;". Но вот следующая конструкция всегда выдает FALSE:

$textfile=fopen ("text.csv","r");
   while (!feof($textfile)){
      $str=fgets($textfile, 1024);
      if (ereg ("(^[^\\;]+[\\;]*$)", $str)){
         print "true";}
         else {
         print "false";}
   }
   fclose($textfile);

Текстовый файл text.csv:

Head1;
text1;text2
text3;text4
Head2;
text5;text6
text7;text8


В чем косяк? Все же работает, когда $str задан в коде!
Название: Регулярные выражения
Отправлено: 017 от 31 Июля 2002, 14:05:51
Извиняюсь за offtopic. Не туда отправил...