Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=5385473&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 02:33:11 2016
Кодировка: Windows-1251
Вопросы про регекспы (сед и жскрипт) - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 1
kaiafa

Рег.: 17.05.2004
Сообщений: 13390
Из: Strasbourg, FR
Рейтинг: 4
  Вопросы про регекспы (сед и жскрипт)
      16.11.2006 13:08
 

1. В доках мне этого найти не удалось, но по поведению седа, он работает только в пределах каждой отдельной строки. А может, нет. Но что-то в этом роде. Я прав? Если нет, то в чем может заключаться проблема? (надеюсь, знающим людям она понятна, и подробно объяснять ее не придется)

2. Почему-то в ЖСкрипт применение метода реплейс к строке находит первое вхождение паттерна (или как там это в регекспах называется), делает замену и выходит. Повторный вызов реплейса находит следующее вхождение, заменяет и опять выходит. Это правильно?



chunky_bacon
chunky_bacon

Рег.: 08.10.2006
Сообщений: 1996
Рейтинг: 820
  Re: Вопросы про регекспы (сед и жскрипт) [re: kaiafa]
      16.11.2006 13:09
 

Quote:

2. Почему-то в ЖСкрипт применение метода реплейс к строке находит первое вхождение паттерна (или как там это в регекспах называется), делает замену и выходит. Повторный вызов реплейса находит следующее вхождение, заменяет и опять выходит. Это правильно?



Да, если хочешь сразу все вхождения заменить, используй метод replaceAll.

kaiafa

Рег.: 17.05.2004
Сообщений: 13390
Из: Strasbourg, FR
Рейтинг: 4
  Re: Вопросы про регекспы (сед и жскрипт) [re: chunky_bacon]
      16.11.2006 13:10
 

ясно, спасибо ))



xryun_del
hikikomori

Рег.: 08.08.2005
Сообщений: 890
Рейтинг: 0
  Re: Вопросы про регекспы (сед и жскрипт) [re: kaiafa]
      16.11.2006 15:23
 

Либо используй модификатор g в регулярном выражении, как это делается и в других языках:
var text = "Windows, Windows, Windows!"
text = text.replace(/Windows/g, "Linux");

kaiafa

Рег.: 17.05.2004
Сообщений: 13390
Из: Strasbourg, FR
Рейтинг: 4
  Re: Вопросы про регекспы (сед и жскрипт) [re: xryun_del]
      16.11.2006 15:29
 

сенкс

а по первому вопросу? сед работает в каждой строке отдельно, по всему тексту или в зависимости от параметров?



shaller
San Jose

Рег.: 25.10.2002
Сообщений: 21640
Из: Станция 074803
Рейтинг: 15646
  Re: Вопросы про регекспы (сед и жскрипт) [re: kaiafa]
      16.11.2006 16:06
 

сед работает с потоком а не со строкой



'Земля наша велика и обильна, а порядка в ней нет. Приходите княжить и владеть нами'
xryun_del
hikikomori

Рег.: 08.08.2005
Сообщений: 890
Рейтинг: 0
  Re: Вопросы про регекспы (сед и жскрипт) [re: kaiafa]
      16.11.2006 16:10
 

sed работает для каждой строки отдельно, поэтому он может работать с очень большими файлами. Но в нем есть escape-последовательность \n, соответствующая символу новой строки.

kaiafa

Рег.: 17.05.2004
Сообщений: 13390
Из: Strasbourg, FR
Рейтинг: 4
  Re: Вопросы про регекспы (сед и жскрипт) [re: xryun_del]
      16.11.2006 16:16
 

спасибо )) блин, мог бы и сам про \n догадаться



shaller
San Jose

Рег.: 25.10.2002
Сообщений: 21640
Из: Станция 074803
Рейтинг: 15646
  Re: Вопросы про регекспы (сед и жскрипт) [re: xryun_del]
      16.11.2006 16:19
 

\n - не Esc-последовательность




'Земля наша велика и обильна, а порядка в ней нет. Приходите княжить и владеть нами'
KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: Вопросы про регекспы (сед и жскрипт) [re: kaiafa]
      16.11.2006 17:21
 

> А может, нет.

Ключевые слова: hold space, pattern space.

> находит первое вхождение <...>, делает замену и выходит.

Так и положено. Читать про флаги в команде замены.


---
...Я работаю антинаучным аферистом...

Vilfred_Sagen
спать хочу

Рег.: 29.10.2004
Сообщений: 22313
Из: moscow
Рейтинг: 7124
  Re: Вопросы про регекспы (сед и жскрипт) [re: KOHTPA]
      17.11.2006 10:58
 

а в седе нельзя переопределить разделитель входных записей? на эту тему man sed ченноить говорит? (потому как хз, мож и не говорит ваще) в перле это переменная $/

KOHTPA
Carpal Tunnel

Рег.: 22.01.2003
Сообщений: 33647
Рейтинг: 2374
  Re: Вопросы про регекспы (сед и жскрипт) [re: Vilfred_Sagen]
      20.11.2006 13:02
 

Там все написано:
code:
DESCRIPTION Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).

code:
Normally, sed cyclically copies a line of input, not including its termi- nating newline character, into a pattern space

На тему, что такое "text", можно читать SUS, IEEE POSIX или что там еще.

man awk:
code:
Built-in Variables ................................................. ORS output record separator (default newline) RS input record separator (default newline)



---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Страницы: 1

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 0 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в