powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Replace. исправляю email
25 сообщений из 33, страница 1 из 2
Replace. исправляю email
    #37916588
dsmart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу заменить строку .r на .ru (для email адресов), просто сделать replace(".r", ".r", ".ru") не получается. т.к. в случае если все таки .ru, получается .ruu
Подскажите решение пожалуйста.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37916591
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
replace(replace(replace(Str, ".ru", "@#@"),".r", ".ru"), "@#@", ".ru")
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917089
dsmart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть заменить символ ru на что то еще. А другие варианты есть? просто у меня много разных возможных замен и такая подстановка может помешать отработать остальным проверкам.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917095
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dsmartТо есть заменить символ ru на что то еще. А другие варианты есть? просто у меня много разных возможных замен и такая подстановка может помешать отработать остальным проверкам.
чем она может "помешать" ?
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917102
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> у меня много разных возможных замен

Тогда регулярные выражения.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917103
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dsmartТо есть заменить символ ru на что то еще. А другие варианты есть? просто у меня много разных возможных замен и такая подстановка может помешать отработать остальным проверкам. не вижу, чем она могла бы помешать, ну раз так принципиально - подключать библиотеку и юзать RegExp - примеры есть на форуме.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917119
dsmart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно просто не догоняю.
Я сделал список ошибок и рядом столбец как выглядит исправленный вариант.
С помощью replace проверяю на наличие в первом столбце если соответствие есть заменяю на второй.
А из предложенного варианта мне придется для каждой замены писать свое выражение.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917133
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто мешает использовать эту формулу для всех вариантов?

И опять же, тут уже возникает минимум ДВА столбца - ".r" как слово для замены и ".ru" - исключение. Ну, соответственно, будет учитываться для любого варианта
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917138
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dsmartВозможно просто не догоняю.
да, железно - "не догоняеш"
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub test()
    Dim s As String
    Dim i As Long
    Dim ar1, ar2
    ar1 = Array(".r", ".u", ".e")
    ar2 = Array(".ru", ".ua", ".en")
    s = "haba-haba.r haba-haba.ru haba-haba.u haba-haba.ua haba-haba.e haba-haba.en"
    For i = LBound(ar1) To UBound(ar1)
        Debug.Print s
        s = Replace(Replace(Replace(s, ar2(i), "@#@"), ar1(i), ar2(i)), "@#@", ar2(i))
    Next i
    Debug.Print s
End Sub


Код: vbnet
1.
2.
3.
4.
5.
test
haba-haba.r haba-haba.ru haba-haba.u haba-haba.ua haba-haba.e haba-haba.en
haba-haba.ru haba-haba.ru haba-haba.u haba-haba.ua haba-haba.e haba-haba.en
haba-haba.ru haba-haba.ru haba-haba.ua haba-haba.ua haba-haba.e haba-haba.en
haba-haba.ru haba-haba.ru haba-haba.ua haba-haba.ua haba-haba.en haba-haba.en
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917156
dsmart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я думал что есть вариант с поиском окончания строки. та же ситуация возникает например с xxx@mail вместо xxx@mail.ru
Как это обработать?
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917166
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dsmartЯ думал что есть вариант с поиском окончания строки. та же ситуация возникает например с xxx@mail вместо xxx@mail.ru
Как это обработать?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    ar1 = Array(".r", ".u", ".e", "mail")
    ar2 = Array(".ru", ".ua", ".en", "mail.ru")
...
test
haba-haba.r haba-haba.ru haba-haba.u haba-haba.ua haba-haba.e haba-haba.en xxx@mail вместо xxx@mail.ru
haba-haba.ru haba-haba.ru haba-haba.u haba-haba.ua haba-haba.e haba-haba.en xxx@mail вместо xxx@mail.ru
haba-haba.ru haba-haba.ru haba-haba.ua haba-haba.ua haba-haba.e haba-haba.en xxx@mail вместо xxx@mail.ru
haba-haba.ru haba-haba.ru haba-haba.ua haba-haba.ua haba-haba.en haba-haba.en xxx@mail вместо xxx@mail.ru
haba-haba.ru haba-haba.ru haba-haba.ua haba-haba.ua haba-haba.en haba-haba.en xxx@mail.ru вместо xxx@mail.ru
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917178
dsmart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112 Shocker.Pro

Спасибо ) Вроде ясно.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917182
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот так, только, навсякий
Код: vbnet
1.
2.
    ar1 = Array(".r", ".u", ".e", "@mail")
    ar2 = Array(".ru", ".ua", ".en", "@mail.ru")
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37917501
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112вот так, только, навсякий
Код: vbnet
1.
2.
    ar1 = Array(".r", ".u", ".e", "@mail")
    ar2 = Array(".ru", ".ua", ".en", "@mail.ru")



на всякий ...
Код: vbnet
1.
2.
3.
4.
s = "qwe.rty112@mail.ru"

'в результате работы функции получим
qwe.ruty112@mail.ru

...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918063
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверять, имеется ли правее кандидата в исправление собачка. если да, то замена не производится.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918077
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qlewerпроверять, имеется ли правее кандидата в исправление собачка. если да, то замена не производится.А если в имени домена есть ".r", умник?
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918189
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProQlewerпроверять, имеется ли правее кандидата в исправление собачка. если да, то замена не производится.А если в имени домена есть ".r", умник? приведи пример
если есть такие, то проверять ещё и наличие точки справа. если есть, то не исправлять
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918202
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы лично делал совсем по-другому. проверял, что ".r" стоит в конце записи. просто. сердито. эффективно
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918221
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QlewerShocker.Proпропущено...
А если в имени домена есть ".r", умник? приведи пример
Ничто мне не мешает в моём домене domen.my создать субдомен r.r.r.r.r.domen.my и повесить на него почтарь.

Qlewerя бы лично делал совсем по-другому. проверял, что ".r" стоит в конце записи. просто. сердито. эффективно
Угу... вот только как ты определишь "конец записи", хотелось бы знать? только не спеши... почитай ещё раз RFC-шку по e-mail-адресам...
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918226
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

len - узнаём длину строки
mid - узнаём последние символы. не?
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918237
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C концом строки можно проще:
Код: vbnet
1.
Replace(Replace(Str+"#@#",".r#@#",".ru"),"#@#","")
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918254
Фотография Qlewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

вот я тоже думаю, что так было бы проще и правильней всего. по концу строки. а не относительно посторонних символов
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918299
dsmart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага есть проблемы с обработкой .r и когда домен вообще не указан, например, просто gmail
Сейчас емейл разделил на две части, до собаки и после, обрабатываю их отдельно.
Когда нету точки после собаки делаю исключение, обрабатываю вручную.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918302
dsmart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И кстати подскажите пожалуйста что означает #@#, поисковики не ищут такой набор символов.
...
Рейтинг: 0 / 0
Replace. исправляю email
    #37918330
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qlewerlen - узнаём длину строки
mid - узнаём последние символы. не?
При условии, что один мыл - одна строка... и одна строка - только один мыл, без нифига... что далеко не факт.
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Replace. исправляю email
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]