मेरे पास एक तार है। मैं एक निश्चित चरित्र के बाद सभी पाठ कैसे निकालूं? ( इस मामले में...
)
पाठ के बाद ...
बदल जाएगा इसलिए मैं एक निश्चित एक के बाद सभी पात्रों को निकालना चाहता हूं।
मेरे पास एक तार है। मैं एक निश्चित चरित्र के बाद सभी पाठ कैसे निकालूं? ( इस मामले में...
)
पाठ के बाद ...
बदल जाएगा इसलिए मैं एक निश्चित एक के बाद सभी पात्रों को निकालना चाहता हूं।
जवाबों:
अपने विभाजक पर अधिकतम एक बार विभाजित करें, और पहला टुकड़ा लें:
sep = '...'
rest = text.split(sep, 1)[0]
आपने यह नहीं कहा कि यदि विभाजक मौजूद नहीं है तो क्या होना चाहिए। यह और एलेक्स का समाधान दोनों उस स्थिति में पूरे स्ट्रिंग को वापस कर देंगे।
मान लिया जाए कि आपका विभाजक '...' है, लेकिन यह कोई भी स्ट्रिंग हो सकता है।
text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')
>>> print head
some string
यदि विभाजक नहीं मिला है, head
तो मूल स्ट्रिंग के सभी शामिल होंगे।
विभाजन समारोह पायथन 2.5 में जोड़ा गया था।
विभाजन (...) एस। विभाजन (एसईपी) -> (सिर, एसईपी, पूंछ)
Searches for the separator sep in S, and returns the part before it, the separator itself, and the part after it. If the separator is not found, returns S and two empty strings.
यदि आप एक स्ट्रिंग में विभाजक की अंतिम घटना के बाद सब कुछ निकालना चाहते हैं तो मुझे लगता है कि यह अच्छी तरह से काम करता है:
<separator>.join(string_to_split.split(<separator>)[:-1])
उदाहरण के लिए, यदि string_to_split
कोई रास्ता पसंद है root/location/child/too_far.exe
और आप केवल फ़ोल्डर पथ चाहते हैं, तो आप विभाजित कर सकते हैं "/".join(string_to_split.split("/")[:-1])
और आपको मिल जाएगा
root/location/child
बिना आरई (जो मुझे लगता है कि आप चाहते हैं):
def remafterellipsis(text):
where_ellipsis = text.find('...')
if where_ellipsis == -1:
return text
return text[:where_ellipsis + 3]
या, एक आरई के साथ:
import re
def remwithre(text, there=re.compile(re.escape('...')+'.*')):
return there.sub('', text)
विधि खोज एक स्ट्रिंग में वर्ण स्थिति लौटाएगा। फिर, यदि आप चरित्र से हर चीज़ को हटाना चाहते हैं, तो यह करें:
mystring = "123⋯567"
mystring[ 0 : mystring.index("⋯")]
>> '123'
यदि आप चरित्र को रखना चाहते हैं, तो चरित्र स्थिति में 1 जोड़ें।
import re
test = "This is a test...we should not be able to see this"
res = re.sub(r'\.\.\..*',"",test)
print(res)
आउटपुट: "यह एक परीक्षा है"
एक फ़ाइल से:
import re
sep = '...'
with open("requirements.txt") as file_in:
lines = []
for line in file_in:
res = line.split(sep, 1)[0]
print(res)