Что нового

[Данные, строки] StringSplit

noob

Новичок
Сообщения
17
Репутация
0
Собственно код:
Код:
$details = StringSplit("mail.ru@alex;ass@sins", "@;")
$domain = $details[1]
$username = $details[2]
$password = $details[3]
MsgBox(64, "Пароль видится таким", $password, 60*999)

Проблем с простыми деталями типа "mail.ru@alex;pass1234" не возникает, но если хотя бы дважды встречается @ то начинает рубить остатки строки, не могу сообразить как этого избежать и получить полноценный пароль в переменную $password включая собачку (или собачки, если их несколько)
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Попробуйте так:
Код:
$string = "mail.ru@alex;ass@sins"
$pattern = '(?is)(.+\..{2,3})@(.+);(.+)'
$details = StringRegExp($string, $pattern, 3)
$domain = $details[0]
$username = $details[1]
$password = $details[2]
ConsoleWrite("domain - " & $details[0] & @LF & "username - " & $details[1] & @LF & "password - " & $details[2] & @LF)
MsgBox(64, "Пароль видится таким", $password, 60*999)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
noob [?]
получить полноценный пароль в переменную $password
Код:
$details = StringSplit("mail.ru@alex;ass@sins", ";")
$password = $details[UBound($details)-1]
MsgBox(64, "Пароль видится таким", $password, 60*999)



Добавлено:
Сообщение автоматически объединено:

Код:
$details = StringSplit("mail.ru@alex;ass@sins", ";")
;~ $details = StringSplit("mail.ru@alex;pass1234", ";")

$aData = StringSplit($details[1], "@")
$domain  = $aData[1]
MsgBox(64, "domain", $domain, 60*999)
$username = $aData[2]
MsgBox(64, "username", $username, 60*999)
$password = $details[UBound($details)-1]
MsgBox(64, "password", $password, 60*999)
 
Автор
N

noob

Новичок
Сообщения
17
Репутация
0
edyapd, благодарю за поддержку ;)

Garrett, ваш пример меня выручил, не пришло в голову сразу разбить еще на один массив, теперь разобрался :ok: моё почтение!
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
noob

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Данные, строки] StringSplit" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 
Верх