#tcl
Вопрос:
Строка ввода : 4567-ABC
Я хочу удалить все, что было до « -
» в строке, чтобы вывод был ABC.
Выход: ABC
Комментарии:
1. Теперь у меня есть ответ, если у кого — то есть лучший способ, дайте мне знать — [regsub {.* -} $string»»], который дает мне вывод ABC
Ответ №1:
Если вы хотите избежать регулярных выражений:
set string 4567-ABC
set output [lindex [split $string "-"] 1]
split
Команда принимает строку и разделенные символы в качестве аргументов и возвращает список.
Комментарии:
1. В качестве альтернативы
lindex [split $string -] end
, чтобы получить последний элемент, независимо от его индекса.
Ответ №2:
string last
полезно здесь:
set string 4567-ABC
set idx [string last "-" $string]
set wanted [string range $string $idx 1 end]
Или без промежуточной переменной
set wanted [string range $string [string last "-" $string] 1 end]
Это работает даже в том случае, если исходная строка не содержит дефисов.