Автор Тема: Замучался уже  (Прочитано 3793 раз)

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

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
Замучался уже
« : 05 Января 2004, 16:11:49 »
Привет.

Мне тут нужно по зарез отыскать в строке такую штуку - строка в которой есть слово любой длины, возможно два слова и более за которым сразу без пробела открываются кавычки и далее продолжается в кавычках слово или более за которым кавычки закрываюся и продолжается текст.

пример: Энергоспецремонт АЭК"Киевэнерго" - нужно отыскать АЭК"  и вставить между ними пробел.


Уже измучался, несколько часов сижу, .. но невышло ничего, просто отыскиваю  слова с кавычками и все..


помогите если кто может.

спасибо.
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Поиск текста в строке по заданному шаблону
« Ответ #1 : 05 Января 2004, 16:22:03 »
Может так (на вскидку, без проверки)...

~s /^([А-Яа-яЁё\\s\\w]+)\\"(.*)$/$1 \\"$2/

P.S. исправил - съел слеши
еще раз исправил после проверки...
« Последнее редактирование: 05 Января 2004, 16:31:09 от Phoinix »

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Поиск текста в строке по заданному шаблону
« Ответ #2 : 05 Января 2004, 16:25:36 »
s/(\\S)(".+?")/$1 $2/sg;
0 OK, 0:1

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
Поиск текста в строке по заданному шаблону
« Ответ #3 : 05 Января 2004, 19:35:34 »
:)

то ничего неработало, зато я написал может и неправильно но заработало

^([A-Za-zА-Яа-яЁё0-9\\.ІіЇїЄє\\s\\w\\-]+)*["-]([A-Za-zА-Яа-яЁё0-9\\.ІіЇїЄє\\ \\s\\w\\-]+)*"([A-Za-zА-Яа-яЁё0-9\\.ІіЇїЄє\\ \\s\\w\\-]+)*$
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Поиск текста в строке по заданному шаблону
« Ответ #4 : 05 Января 2004, 20:53:50 »
tarya
Весьма странно, что на моем примере, что на примере ondr
у меня получался правильный ответ:

Энергоспецремонт АЭК"Киевэнерго" bla bla bla -> Энергоспецремонт АЭК "Киевэнерго" bla bla bla

Может просто кто-то неправильно задал вопрос? :)

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
Поиск текста в строке по заданному шаблону
« Ответ #5 : 06 Января 2004, 13:23:23 »
странно, конечно может и я чтото неправильно делаю, ... беребирациклом из базы данных строки и сверяю их через

$soc = ereg_replace (\'^([A-Za-zА-Яа-яЁё0-9\\.ІіЇїЄє\\s\\w\\-]+)*["-]([A-Za-zА-Яа-яЁё0-9\\.ІіЇїЄє\\ \\s\\w\\-]+)*"([A-Za-zА-Яа-яЁё0-9\\.ІіЇїЄє\\ \\s\\w\\-]+)*$\', \'\\\\1 "\\\\2"\', $row[sokr]);


странно но когда я использовал твой запрос, ничего проти него неимею но он ничего вообще ненаходил, воообще ноль

$soc = ereg_replace (\'~s /^([А-Яа-яЁё\\s\\w]+)\\"(.*)$/$1 \\"$2/\', \'\\\\1 "\\\\2"\', $row[sokr]);

вот так ноль...


а запрос парня второго вообще только ошибку выдавало.
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Поиск текста в строке по заданному шаблону
« Ответ #6 : 06 Января 2004, 13:50:29 »
s/(\\S)(".+?")/$1 $2/sg; - это perl

Вот тебе для php: preg_replace(\'/(\\S)(".+?")/s\', \'\\\\1 \\\\2\', $your_var);
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Поиск текста в строке по заданному шаблону
« Ответ #7 : 06 Января 2004, 13:51:57 »
tarya
Ты просто не правильно понял конструкцию:

~s /^([А-Яа-яЁё\\s\\w]+)\\"(.*)$/$1 \\"$2/
где:
^([А-Яа-яЁё\\s\\w]+)\\"(.*)$ - что искать;
$1 \\"$2 - на что заменять

Сотвественно:
s/(\\S)(".+?")/$1 $2/sg;
(\\S)(".+?") - что искать;
$1 $2 - на что заменять;
sg - как заменять...

 

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