Автор Тема: регулярные выражения  (Прочитано 5067 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gad

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 28
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
регулярные выражения
« : 26 Декабря 2002, 16:04:16 »
есть такое
                     лорврилыавж : jhbkdvsf
вобщем ключ - двоеточие
нужно прочитать слово до него, между словом и двоеточием может быть пробел или 2.
$l=preg_match ("/(\\S*)\\s:/",$line,$st); - так работает с пробелом ну и:$l=preg_match ("/(\\S*):/",$line,$st); - без оного
А вот как эти строки в одну сунуть ?

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
регулярные выражения
« Ответ #1 : 26 Декабря 2002, 16:19:41 »
[удалено мною (поспешил:-)]

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
регулярные выражения
« Ответ #2 : 26 Декабря 2002, 16:23:27 »
"/(\\S*)\\s?:/"

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
регулярные выражения
« Ответ #3 : 26 Декабря 2002, 16:24:38 »
Если я тебя правильно понял:

$str
="лорврилыавж : jhbkdvsf";
preg_match("/^[^:]+/"$str$p);
$word=trim($p[0]);
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
регулярные выражения
« Ответ #4 : 27 Декабря 2002, 05:48:31 »
а можеть не надо париться с регами?
есть же ведь explode(), trim().... если таких строчек много то это будет куда быстрее
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн gad

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 28
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
регулярные выражения
« Ответ #5 : 27 Декабря 2002, 06:27:46 »
explode(),  не пойдет - в строке есть еше другой ключ-разделитель
 tserbis  
 
так нельзя "/(\\S*)\\s?:/" -пробела может не быть совсем.
(Прошу прощения- это я в начале не сказал).
"/^[^:]+/", - это что-то похоже, но берет всю строку до двоеточия, а у меня там еще разделитель - точка.
Примерно так:
слово.2343                    sdlfksndlvn: sdfsdfs345453
причем 2345 может не быть

Спасибо

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
регулярные выражения
« Ответ #6 : 27 Декабря 2002, 08:58:43 »
Цитировать
это что-то, похоже, но берет всю строку до двоеточия, а у меня там еще разделитель - точка.

ТЫ ДУМАЕШЬ, ЧТО ЗДЕСЬ СБОРИЩЕ ТЕЛЕПАТОВ!!! то у него там пробела может не быть, то у него какой-то разделитель в виде точки, и чёрт его знает, что ещё с этим разделителем делать! Учись правильно задавать вопросы, и нормально описывать то, что тебе нужно сделать! В следующий раз удалю или закрою тему.

Цитировать
explode(), не пойдет - в строке есть еше другой ключ-разделитель

Нормально храни данные и не мачайся.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
регулярные выражения
« Ответ #7 : 27 Декабря 2002, 10:58:38 »
вообще-то да.
простейшие строковые операции.
две strpos - найти разделители,
substr - "слово" вырезать
и trim - пробелы обрезать
и никаких регулярных.

Оффлайн gad

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 28
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
регулярные выражения
« Ответ #8 : 27 Декабря 2002, 12:19:09 »
этобысрее чем выражения?
меня смущает что одну строку 2 раза перелопачивать надо.

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
регулярные выражения
« Ответ #9 : 27 Декабря 2002, 12:53:07 »
Найти в строке определенный символ, и разбить по нему строку заведомо быстрее, чем скомпилировать шаблон для регекспа, и применить его к той же строке. Регекспы в принципе довольно затратная вещь.
•••Jah\'d never let us down!•••

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
регулярные выражения
« Ответ #10 : 27 Декабря 2002, 13:23:26 »
gad
ты действительнго думаешь, что регэксп строку перелопачивает ОДИН раз?

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
регулярные выражения
« Ответ #11 : 27 Декабря 2002, 14:12:06 »
Цитировать
меня смущает что одну строку 2 раза перелопачивать надо.

Ни кто от этого не умрёт.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28