এলিসপ পুনরায় প্রয়োগ করুন - এবং $ বনাম `এবং '


16

ম্যানুয়ালটি regexp বিশেষ অক্ষর এবং বর্ণনা করে । আমি জানি বেশিরভাগ নিয়মিত অভিব্যক্তি উপভাষার মতো এগুলি কোনও স্ট্রিংয়ের শুরু বা শেষের সাথে মিলে যায়। তবে, আমি এটিও আবিষ্কার করেছি যে সেখানে উপলব্ধ এবং অক্ষর রয়েছে। এখানে পাওয়া ব্যাখ্যাটির ভিত্তিতে , তারা স্ট্রিংগুলির শুরু বা শেষের সাথে মিলেছে বলে মনে হয়। কেউ দয়া করে এই বিশেষ চরিত্রগুলির মধ্যে পার্থক্যটি বর্ণনা করতে পারেন, উদাহরণ এবং সুপারিশ দিয়ে কখন সেগুলি ব্যবহার করবেন?^$`'

আমি যখন এর মানটি দেখি auto-mode-alistতখন মনে হয় স্ট্রিংগুলির শেষের সাথে ম্যাচ করার জন্য এগুলি পরস্পরের পরিবর্তে ব্যবহৃত হবে:

(...
 ("\\.scss\\'" . scss-mode)
 ("\\.ya?ml$" . yaml-mode)
...)

2
লোকেরা যখন এর $মতো ব্যবহার করে, তখন তারা ফাইললাইনে ব্যাংকিং করছে যা নতুন লাইনে নেই। এটি সাধারণত একটি (খুব) নিরাপদ অনুমান হতে চলেছে, তবে এটির নিশ্চয়তা নেই । ব্যবহার \\'তাই সেরা অনুশীলন।
ফিলস

উত্তর:


14

আপনার স্ট্রিং এ এমবেডড নিউলাইন চরিত্র থাকতে পারে \', সেক্ষেত্রে স্ট্রিংয়ের শেষের সাথে $মেলে তবে নিউলাইন চরের ঠিক আগে মেলে।

এলিস্প ম্যানুয়ালটি উদ্ধৃত করতে, নোড রেজিপ্সপ স্পেশাল :

বাফারের পরিবর্তে কোনও স্ট্রিংয়ের সাথে মেলে যখন the $ 'স্ট্রিংয়ের শেষে বা একটি নিউলাইন চরিত্রের আগে মেলে।

একইভাবে, \`স্ট্রিংয়ের শুরুর সাথে ^মেলে তবে নিউলাইন চরের ঠিক পরে মিলছে। আবার, ম্যানুয়াল:

বাফারের পরিবর্তে কোনও স্ট্রিংয়ের সাথে মেলে যখন the ^ 'স্ট্রিংয়ের শুরুতে বা একটি নিউলাইন চরিত্রের পরে মেলে।

সুতরাং স্ট্রিংগুলির জন্য আপনি সাধারণত ব্যবহার করতে চান \`এবং \'বিশেষত যদি আপনার কোডটি স্ট্রিংয়ে নতুন লাইন অক্ষর থাকতে পারে কিনা তা আগে সময়ের আগে জানতে না পারে। বাফারে পাঠ্যের জন্য আপনি সাধারণত ব্যবহার করেন ^এবং $


6
(string-match "^foo" "foo")         ; => 0
(string-match "\\`foo" "foo")       ; => 0
(string-match "^foo" "bar\nfoo")    ; => 4
(string-match "\\`foo" "bar\nfoo")  ; => nil

(string-match "foo$" "foo")         ; => 0
(string-match "foo\\'" "foo")       ; => 0
(string-match "foo$" "foo\nbar")    ; => 0
(string-match "foo\\'" "foo\nbar")  ; => nil

^এবং লাইনের$ শুরু এবং শেষের সাথে মেলে ।

\`এবং পুরো স্ট্রিংয়ের\' শুরু এবং শেষের সাথে মেলে ।


2
there are ` and ' characters available. [...] they seem to also match the start or end of strings

বিশেষ অক্ষর আছেন: . * + ? ^ $ \ [

বন্ধনীগুলির মধ্যে [], নিম্নলিখিতগুলিও বিশেষ:] - ^

ব্যাকটিক `, এবং একক উদ্ধৃতি 'সহ অনেকগুলি অক্ষর বিশেষ করে যখন তারা ব্যাকস্ল্যাশ অনুসরণ করে। দেখুন এখানে আরো বিস্তারিত জানার জন্য।

Could someone please explain the difference between these special characters, with an example and recommendation on when to use them?

beginning of stringএবং এর মধ্যে পার্থক্য রয়েছে beginning of each line in the string

সৌজন্যে এরগোইম্যাকস। আপনি এখানে আরও পড়তে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.