কোন নিয়মিত এক্সপ্রেশন অপারেটর মানে এই চরিত্রটি মেলে না?


91

*, ?, +অক্ষর সমস্ত মানে এই অক্ষর মেলে। কোন চরিত্রের অর্থ 'এটি' মেলে না? উদাহরণগুলি সাহায্য করবে।


কোনও শব্দের সাথে মেলে না সম্পর্কিত সমাধানের জন্য - এখানে দেখুন stackoverflow.com/questions/406230
নাল

উত্তর:


92

আপনি নির্দিষ্ট অক্ষরগুলি বাদ দেওয়ার জন্য অবহেলিত চরিত্রের ক্লাস ব্যবহার করতে পারেন: উদাহরণস্বরূপ [^abcde]a, b, c, d, e অক্ষর ছাড়া অন্য কোনও কিছু মিলবে match

সমস্ত অক্ষরকে আক্ষরিকভাবে নির্দিষ্ট করার পরিবর্তে, আপনি অক্ষর শ্রেণীর অভ্যন্তরে শর্টহ্যান্ডগুলি ব্যবহার করতে পারেন : [\w](ছোট হাতের অক্ষর) কোনও "শব্দের অক্ষর" (অক্ষর, সংখ্যা এবং আন্ডারস্কোর) এর সাথে [\W]মিলবে , (বড় হাতের) শব্দের অক্ষর ব্যতীত অন্য কোনও কিছুর সাথে মিলবে; একইভাবে, [\d]0-9 ডিজিটের সাথে [\D]মিলবে যখন 0-9 সংখ্যা বাদে অন্য কোনও কিছুর সাথে মেলে ।

আপনি যদি পিএইচপি ব্যবহার করেন তবে আপনি রেজেক্স চরিত্রের ক্লাসের ডকুমেন্টেশনগুলি একবার দেখে নিতে পারেন ।


82

"মিলছে না" বলার দুটি উপায় রয়েছে: চরিত্রের ব্যাপ্তি এবং শূন্য-প্রস্থের নেতিবাচক বর্ণনহীন / চেহারা অবধি।

সাবেক: মিলছে না a, b, cবা 0:[^a-c0]

দ্বিতীয়টি: আর তিনটি বর্ণের স্ট্রিংয়ের সাথে মেলে fooএবং bar:

(?!foo|bar).{3}

বা

.{3}(?<!foo|bar)

এছাড়াও, আপনি সেটি সংশোধন: *, ?এবং +আসলে কিছু মিলছে না। তারা পুনরাবৃত্তি অপারেটর এবং সর্বদা একটি ম্যাচিং অপারেটর অনুসরণ করে। সুতরাং, a+মানে এক বা একাধিক মেলে a, [a-c0]+মানে এক বা মেলে বেশি a, b, cবা 0, যখন [^a-c0]+এক মেলে দিবে কিছু বেশি ছিল না a, b, cবা 0



49

[^] ( [] এর মধ্যে ) হ'ল নিয়মিত অভিব্যক্তিতে অস্বীকৃতি^ "স্ট্রিংয়ের সূচনা"

[^a-z]"এ" থেকে "জেড" না এমন কোনও একক অক্ষরের সাথে মেলে

^[a-z] মানে স্ট্রিংটি "এ" থেকে "জেড" দিয়ে শুরু হয়

রেফারেন্স


9

^ একটি অক্ষর পরিসীমা শুরুতে ব্যবহার করা হয়, বা নেতিবাচক lookahead / বর্ণনাকী জবাব।

>>> re.match('[^f]', 'foo')
>>> re.match('[^f]', 'bar')
<_sre.SRE_Match object at 0x7f8b102ad6b0>
>>> re.match('(?!foo)...', 'foo')
>>> re.match('(?!foo)...', 'bar')
<_sre.SRE_Match object at 0x7f8b0fe70780>

আপনার কি ?!শেষ 2 টি উদাহরণে ব্যবহার করতে হবে বা আপনি কেবল !নিজেরাই ব্যবহার করতে পারেন ? ?সেখানে কি করে ?
8:19

পাইথনের ?এটির জন্য এটি প্রয়োজন যে এটি একটি এক্সটেনশন। অন্যান্য রেজেক্স ইঞ্জিনগুলির নিজস্ব নিয়ম থাকতে পারে।
Ignacio Vazquez-Abram

@ ক্লিক: এটি বেশ স্ট্যান্ডার্ড। নিয়মিত-expressions.info/refadv.html , বেশিরভাগ regexp ইঞ্জিন ম্যানুয়ালগুলিও একই কথা বলে।
আমাদান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.