Python'daki dizeler, dizginizdeki "somestring" için dizin numarasını döndüren bir bulma ("somestring") yöntemine sahiptir.Python'da başka bir alt dizeden sonra oluşan bir alt dizenin ilk oluşumunu nasıl bulabilirim?
Ama ben aşağıdaki gibi bir dize var diyelim:
"5 $ 7 $ 9 $ Toplam Maliyet: $ 35 $ 14"
Ve '$' ilk geçtiği dizinini bulmak istediğiniz oluşur "Toplam Maliyet" dizesinden sonra - python'a söyleyebilmeyi, "Toplam Maliyet" için indeks numarasından başlayarak "$" değerini aramayı ve indeks numarasını (tüm dizgeye göre) döndürmeyi istiyorum) bulduğunuz '$' nin ilk ortaya çıkışı için. Find() yöntemi 0 döndürür ve bu durumda rfind() işe yaramaz.
def findStrAfterStr(myString, searchText, afterText):
splitString = myString.split(afterText)
myIndex = len(splitString[0]) + len(afterText) + splitString[1].find(searchText)
return myIndex
myString = "$5 $7 $9 Total Cost: $35 $14"
searchText = "$"
afterText = "Total Cost"
findStrAfterStr(myString, searchText, afterText)
Ama bunu yapmak için daha kolay bir yolu olmalı gibi görünüyor ve orada farz muhtemelen ve ben sadece bilmiyorum: Bunu yapmak için kludgy yolu
Bir tür şudur ne olduğunu. Düşünceler?
myString[myString.find("startingSubstr"):myString.find("endingSubstr")]
ve doğal olarak "endingSubstr" "startingSubstr" sonra gerçekleşir biri olmak istiyorum: Kendimi bu yapıyoruz bulduğunda
Bu, dilimleme için ozellıkle faydalı olacaktır.
Sen normal ifade kullanmalıdır. Ayrıca, gerçekten $ 'nin yerleştirilmesine mi ihtiyacınız var, yoksa sadece para miktarını öğrenmeye mi ihtiyacınız var? – lolopop
Biraz regex yapıyorum n00b - bunu nasıl regex ile yapabilirim? – CQP
Yine, neye ihtiyacınız var? – lolopop