Merhaba diyelim ki bir çift ismim var: , ve endeks numarasını almak istiyorum, bu durumda: 12, 124 ve 909. Genellikle, 'string range first last' alt dizinini ayıklamak için kullanabilirim. İlk ve sonuncuyu almak için 'string len orange' ve 'string len orange12' kullanacağım. Şimdi bunu yapmanın başka bir yolunu arıyorum.tcl: Dizeden numara almanın en kolay yolu?
'orange12'.split('orange')[1]
'blue124'.split('blue')[1]
'red909'.split('red')[1]
Nasıl tcl böyle bir şey yapabilirsiniz:
Karşılaştırma olarak, Python, ben böyle bir şey yapabilir? Tcl'de 'split' denedim, ancak karmaşık görünüyor ve işe yaramazdı. Tcl'de bir kelime ile nasıl bölünebilirim (karakter değil)?
Teşekkür
Ve onu gözden kaçırdım. Evet ... bu benim regexp cevabım –
dan daha iyi, bu harika. Ama daha fazla sorum var: eğer ihtiyacım olursa, 'kelime' ve 'num' değişkenlerine saklamak zorunda kalmadan, kelimenin veya num'in değerini döndürmek için 'tara'. Python betiğimde onliner işlevi olarak kullanılmasını istiyorum. örneğin, 'orange12' ile 'newname12' arasındaki ismi değiştirmek istiyorum. Şunun gibi bir şey yapmayı bekliyorum: newname [scan "orange12" {% d}], yani çıktı şu olmalıdır: newname12. Şu anda 'scan' komutu eşleşme sayısını – andio
@andio olarak döndürecektir: try set newname [lindex [scan] orange12 "{% [az]% d}] 1]', veya daha iyisi 'set name [string] harita {orange newname} "turuncu12"]. –