Здравствуйте,
Подскажите как оперировать лишь частью значения строки, допустим я получаю в комментарии следующее значение:
136345 DB / 1500 KB
Каким образом я могу схватить значение 136345? Например это значение нужно присвоить переменой.
Заранее спасибо.
Вырвать часть значения строки
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
- Virtue
- Сообщения: 148
- Зарегистрирован: 07 мар 2014, 10:17
например через :pick
Код: Выделить всё
:local var1 "136345 DB / 1500 KB"
:local var2 [:pick $var1 0 [:find $var1 " "]]
:put $var2
136345
Последний раз редактировалось Virtue 27 окт 2021, 14:43, всего редактировалось 1 раз.
-
- Сообщения: 6
- Зарегистрирован: 26 окт 2021, 10:29
Большое спасибо, а вторую часть (1500) как вырвать? подскажите плиз, сам пробую, но что то пока в синтаксисе не разобрался
- Virtue
- Сообщения: 148
- Зарегистрирован: 07 мар 2014, 10:17
Код: Выделить всё
:local var1 "136345 DB / 1500 KB"
:local var2 [:pick $var1 ([:find $var1 "DB"] + 5) ([:find $var1 "KB"] - 1)]
:put $var2
1500
-
- Сообщения: 6
- Зарегистрирован: 26 окт 2021, 10:29
Правильно ли я понимаю что:
Большое спасибо за помощь.
Отсчёт элементов начинается с DB + ещё три символа?"DB"] + 5
Большое спасибо за помощь.
- Virtue
- Сообщения: 148
- Зарегистрирован: 07 мар 2014, 10:17
find DB ставит отсчет перед DB точнее перед D, теперь +5 (на 5 символов вправо) до нужного вам числа (DB тоже считается т.к мы стояли перед ним)CyberNewbie писал(а): ↑27 окт 2021, 22:14 Правильно ли я понимаю что:Отсчёт элементов начинается с DB + ещё три символа?"DB"] + 5
-
- Сообщения: 6
- Зарегистрирован: 26 окт 2021, 10:29
-
- Сообщения: 20
- Зарегистрирован: 18 ноя 2013, 18:24
Добрый день!
Не получается выцепить ip адрес 159.203.208.5 из строки:
Делаю так:
после выполнения $var2 - пустой
Полагаю это из-за того, что перед нужным мне символом "[" встречается еще один такой же. Как это обойти?
P.S.
Добавил третью переменную, вроде заработало:
Не получается выцепить ip адрес 159.203.208.5 из строки:
Код: Выделить всё
phase1 phase1 negotiation failed due to time up 215.145.34.67[500]<=>159.203.208.5[38100] 111555f681d524ef:7b14a0533b431266
Делаю так:
Код: Выделить всё
:global var1 "phase1 negotiation failed due to time up 215.145.34.67[500]<=>159.203.208.5[38100] 111555f681d524ef:7b14a0533b431266"
:global var2 [:pick $var1 ([:find $var1 ">"] + 1) ([:find $var1 "["])]
:put $var2
Полагаю это из-за того, что перед нужным мне символом "[" встречается еще один такой же. Как это обойти?
P.S.
Добавил третью переменную, вроде заработало:
Код: Выделить всё
:global var1 "phase1 negotiation failed due to time up 215.145.34.67[500]<=>159.203.208.5[38100] 111555f681d524ef:7b14a0533b431266"
:global var3Temp [:pick $var1 ([:find $var1 ">"] + 1) [:len $var1]]
:global var2 [:pick $var3Temp 0 ([:find $var3Temp "["])]
:put $var2
Последний раз редактировалось dizzy 06 фев 2023, 12:53, всего редактировалось 1 раз.
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
можно так
Код: Выделить всё
:local var1 "phase1 negotiation failed due to time up 215.145.34.67[500]<=>159.203.208.5[38100] 111555f681d524ef:7b14a0533b431266";
:set $var1 [:pick $var1 ([:find $var1 ">"] + 1) [:len $var1]];
:set $var1 [:pick $var1 0 [:find $var1 "["]];
:put $var1