হতাশ ছিল সবচেয়ে ভালো উপায় কি মেলে হয় "test.this"থেকে "blah blah blah test.this@gmail.com blah blah"যায়? পাইথন ব্যবহার করা।
আমি চেষ্টা করেছিলাম re.split(r"\b\w.\w@")
হতাশ ছিল সবচেয়ে ভালো উপায় কি মেলে হয় "test.this"থেকে "blah blah blah test.this@gmail.com blah blah"যায়? পাইথন ব্যবহার করা।
আমি চেষ্টা করেছিলাম re.split(r"\b\w.\w@")
উত্তর:
আপনার রেজেক্সে আপনাকে বিন্দু থেকে বাঁচতে"\." হবে বা এটি একটি অক্ষর শ্রেণীর অভ্যন্তরে ব্যবহার করতে হবে "[.]", কারণ এটি রেগেক্সে একটি মেটা-চরিত্র, যা কোনও চরিত্রের সাথে মেলে।
এছাড়াও, আপনার এক বা একাধিক শব্দের অক্ষর \w+মিলানোর পরিবর্তে প্রয়োজন \w।
এখন আপনি যদি test.thisসামগ্রীটি চান তবে আপনার যা splitপ্রয়োজন তা নয়। splitআপনার স্ট্রিংটি এর চারপাশে বিভক্ত করবে test.this। উদাহরণ স্বরূপ:
>>> re.split(r"\b\w+\.\w+@", s)
['blah blah blah ', 'gmail.com blah blah']
আপনি ব্যবহার করতে পারেন re.findall:
>>> re.findall(r'\w+[.]\w+(?=@)', s) # look ahead
['test.this']
>>> re.findall(r'(\w+[.]\w+)@', s) # capture group
['test.this']
"ডিফল্ট মোডে ডট (।) একটি নতুন লাইন ব্যতীত অন্য কোনও অক্ষরের সাথে মেলে the (অজগর ডক)
সুতরাং, আপনি যদি ডটকে সাহিত্যের সাথে মূল্যায়ন করতে চান তবে আমার মনে হয় আপনার এটি স্কোয়ার বন্ধনীতে রাখা উচিত:
>>> p = re.compile(r'\b(\w+[.]\w+)')
>>> resp = p.search("blah blah blah test.this@gmail.com blah blah")
>>> resp.group()
'test.this'
বিন্দু সহ স্ট্রিং ভেরিয়েবলের অ-অক্ষর অক্ষরগুলি থেকে বাঁচতে আপনি ব্যবহার করতে পারেন re.escape:
import re
expression = 'whatever.v1.dfc'
escaped_expression = re.escape(expression)
print(escaped_expression)
আউটপুট:
whatever\.v1\.dfc
আপনি পালিয়ে যাওয়া অভিব্যক্তিটি স্ট্রিংটিকে আক্ষরিকভাবে খুঁজে পেতে / মেলে করতে পারেন।
জাভাস্ক্রিপ্টে আপনাকে use ব্যবহার করতে হবে \ একটি বিন্দু মেলে
উদাহরণ
"blah.tests.zibri.org".match('test\\..*')
null
এবং
"blah.test.zibri.org".match('test\\..*')
["test.zibri.org", index: 5, input: "blah.test.zibri.org", groups: undefined]
এই অভিব্যক্তি,
(?<=\s|^)[^.\s]+\.[^.\s]+(?=@)
সেই নির্দিষ্ট ধরণের ইনপুট স্ট্রিংগুলির জন্য ঠিক আছে work
import re
expression = r'(?<=^|\s)[^.\s]+\.[^.\s]+(?=@)'
string = '''
blah blah blah test.this@gmail.com blah blah
blah blah blah test.this @gmail.com blah blah
blah blah blah test.this.this@gmail.com blah blah
'''
matches = re.findall(expression, string)
print(matches)
['test.this']
আপনি যদি ভাবটি সরল / সংশোধন / অন্বেষণ করতে চান তবে এটি regex101.com এর ডানদিকের প্যানেলে ব্যাখ্যা করা হয়েছে । আপনি যদি চান, আপনি এই লিঙ্কটিতেও দেখতে পারেন , কীভাবে এটি কিছু নমুনার ইনপুটগুলির সাথে মেলে।
\wকেবলমাত্র একটি একটি চরিত্রের সাথে মেলে - আপনি সম্ভবত চান\w+