पायथन में स्ट्रिंग्स में एक खोज ("somestring") विधि है जो आपकी स्ट्रिंग में "somestring" के लिए इंडेक्स नंबर देता है।पायथन में एक और सबस्ट्रिंग के बाद होने वाली एक सबस्ट्रिंग की पहली घटना मुझे कैसे मिल सकती है?
लेकिन मान लीजिए कि मैं जैसे निम्नलिखित एक स्ट्रिंग डालते हैं:
"$ 5 $ 7 $ 9 कुल लागत: $ 35 $ 14"
और मैं '$' की पहली आवृत्ति के सूचकांक पता लगाना चाहते हैं कि तब होता है स्ट्रिंग "कुल लागत" के बाद - मैं पाइथन को बताने में सक्षम होना चाहता हूं, "कुल लागत" के लिए सूचकांक संख्या से शुरू होने वाले '$' की खोज करना चाहता हूं, और सूचकांक संख्या (संपूर्ण स्ट्रिंग के सापेक्ष)) आपको मिलने वाली '$' की पहली घटना के लिए। खोज() विधि 0 वापस आ जाएगी, और rfind() इस मामले में या तो काम नहीं करेगा।
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)
लेकिन ऐसा लगता है वहाँ यह करने के लिए एक आसान तरीका होना चाहिए, और मैं वहाँ मान शायद है और मैं बस पता नहीं है: यह करने के लिए kludgy रास्ते से
एक तरह पीछा कर रहा है यह क्या है। विचार?
यह टुकड़ा करने की क्रिया के लिए विशेष रूप से उपयोगी होगा, जब मैं अपने आप को यह एक बहुत कुछ कर पाते हैं:
myString[myString.find("startingSubstr"):myString.find("endingSubstr")]
और स्वाभाविक रूप से मैं "endingSubstr" एक "startingSubstr" के बाद आती है होना चाहता हूँ।
आप regex का उपयोग करना चाहिए। साथ ही, क्या आपको वास्तव में $ की नियुक्ति की आवश्यकता है, या सिर्फ धन की राशि जानने की आवश्यकता है? – lolopop
मैं एक regex n00b का थोड़ा सा हूँ - मैं regexes के साथ यह कैसे करूँ? – CQP
फिर, आपको क्या चाहिए? – lolopop