Имя: Пароль:
1C
 
VBScript RegExp Replace - надо заменить "ё" на "е" и "Ё" на "Е".
0 ИмяНеизвестно
 
19.07.06
11:11
есть текст: "строка с ёЁё"
надо в ней заменить "ё" на "е", а "Ё" на "Е".

можно это сделать одним выражением?
1 skunk
 
19.07.06
11:12
ReplaceAll
2 skunk
 
19.07.06
11:14
Replace(expr, find, replacewith[, start[, count[, compare]]])
Возвращает строку, которая получается из строки expr путём замен входящих в неё подстрок find на подстроки replacewith. Параметр start определяет начальную позицию поиска. Параметр count определяет число замен (по умолчанию - все). Параметр compare задаёт режим сравнения при обработке строк (0 - двоичное сравнение, 1 - текстовое сравнение)
3 ИмяНеизвестно
 
19.07.06
11:18
(2) ну и что прелагаешь подставлять в find и replacewith, если мне надо одним выражением?
4 skunk
 
19.07.06
11:19
Параметр count определяет число замен (по умолчанию - все).
5 ИмяНеизвестно
 
19.07.06
11:23
(4) Replace("строка с ёЁё", "([ёЁ])", replacewith)
- что должно быть в replacewith? (м.б. я некорректно составил find?)
6 skunk
 
19.07.06
11:26
Replace(Replace("строка с ёЁё", "ё", "е"), "Ё", "Е")
7 ИмяНеизвестно
 
19.07.06
11:35
(6) это уже два выражения =))

в перле можно так:
s/([ёЁ])/$1=ё?е:Ё/g

или так:
tr/ёЁ/еЕ/g
8 skunk
 
19.07.06
11:36
(7)а перле есть ТаблицаЗначений?
9 ИмяНеизвестно
 
19.07.06
11:38
(8) регулярные выражения есть и в vpscript и в Perl/
при чем тут ТЗ, что ты этим сказать хотел?
10 skunk
 
19.07.06
11:44
абсолютно ничего... просто на VB из "строка с ёЁё" заменив "ёЁ" на "еЕ" получишь "строка с еЕё"
11 ИмяНеизвестно
 
19.07.06
11:56
(10) думаешь в перле будет по другому?
12 skunk
 
19.07.06
12:01
(11)незнаю... я перлу не мацал... но судя по сабжу думал должно получиться "строка с еЕе"
13 ИмяНеизвестно
 
19.07.06
12:05
(12) просто tr - это не совсем replace.
tr/123ta/4_gTs/ - тут все "1" поменяются на "4", "2" на "_", "3" на "g" и т.д.
14 skunk
 
19.07.06
12:06
(14)что мешает на VB написать не совсем replace?
15 ИмяНеизвестно
 
19.07.06
12:12
(14) это уже вывод беседы.
я думал, что vbscript есть что-то подобное tr или replace подобный перловому s/([ёЁ])/$1=ё?е:Ё/g
16 skunk
 
19.07.06
12:14
tr это не регулярное выражение... это уже функция... тоже самое как ТЗ в 1С
17 orefkov
 
19.07.06
12:16
Function ReplEe(str)
   ReplEe=Replace(Replace(str, "ё", "е"), "Ё", "Е")
End Function

'Где-то в коде
str=ReplEe(str)
'Одно выражение
18 ИмяНеизвестно
 
19.07.06
12:18
(16) а тут уже встает вопрос, что считать выражением.
s/([ёЁ])/$1=ё?е:Ё/g

тут ([ёЁ]) - паттерн;
$1=ё?е:Ё - строка замены;
s - функция (по твоему).

где выражение? =))
19 skunk
 
19.07.06
12:20
(18)это уже из теологии... я практик... тем более с 3 классами образования...


регуляроное выражение - это стандартная процедура или функция языка... или как их там... зарезервированое слово
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший