আমার একটা স্ট্রিং আছে একটি নির্দিষ্ট চরিত্রের পরে আমি কীভাবে সমস্ত পাঠ সরিয়ে ফেলব? ( এই ক্ষেত্রে...
)
পরবর্তী পাঠ্যটি ...
পরিবর্তিত হবে তাই আমি নির্দিষ্ট বর্ণনার পরে সমস্ত অক্ষর মুছে ফেলতে চাই।
আমার একটা স্ট্রিং আছে একটি নির্দিষ্ট চরিত্রের পরে আমি কীভাবে সমস্ত পাঠ সরিয়ে ফেলব? ( এই ক্ষেত্রে...
)
পরবর্তী পাঠ্যটি ...
পরিবর্তিত হবে তাই আমি নির্দিষ্ট বর্ণনার পরে সমস্ত অক্ষর মুছে ফেলতে চাই।
উত্তর:
আপনার বিভাজকের উপর একবারে বিভক্ত করুন এবং প্রথম টুকরোটি নিন:
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)