একটি নতুন লাইন চরিত্রের সাথে মিলে যাওয়ার জন্য রেজেেক্স কী?


22

ইম্যাকস রেজেেক্সে, \nকোনও নতুন লাইন চরিত্রের সাথে মেলে না \n

  1. আমি কি ঠিক করেছি যে $নতুন লাইন চরিত্রের ঠিক আগে একটি নতুন লাইন চরিত্র এবং চরিত্রের মধ্যে অবস্থানের সাথে মেলে। যেমন একটি স্ট্রিং জন্য abc\n, এবং $মধ্যে অবস্থানের সাথে মেলে ?c\n
  2. মেলে এমন রেজেক্স কী \n?

2
আপনি কি ন্যূনতম কাজের উদাহরণ প্রদান করতে পারেন? হয়তো আমি কিছু মিস করছি, তবে (re-search-forward "\n")আমার জন্য ভাল কাজ করে।
ড্যান

1
আপনার ফাইলটি নতুন রেখাগুলির জন্য \ r use n ব্যবহার করতে পারে এবং এটি সম্ভবত আপনার regexp এ xp r অন্তর্ভুক্ত করা দরকার, তার abc\r\nপরিবর্তে abc\n
জর্ডন বিয়নদো

@Dan: CMS এবং MX উভয় ম্যাচ ঘটতে \nকরতে n। আমার বাফার ফান্ডামেন্টাল মোডে আছে। এটি কোনও পাঠ্যের ক্ষেত্রেই ঘটে তাই নতুন লাইন বা n
চিঠিযুক্ত কোনও পাঠ্যই

@Jordon: CMS এবং MX উভয় ম্যাচ ঘটতে \r\nকরতেrn
সবার জন্য StackExchange

@ টিম, হ্যাঁ কারণ আপনি যদি এগুলি ইন্টারেক্টিভভাবে প্রবেশ করে থাকেন তবে আপনাকে যথাক্রমে একটি উদ্ধৃত সন্নিবেশ, সিকিউ সেন্টিমিটার এবং সিকিউ সিজে করতে হবে। আপনি যদি লিস্প স্ট্রিংয়ের মধ্যে প্রবেশ করছিলেন তবে আপনি প্রবেশ করতে পারেন। R \ n।
জর্ডন বিওনডো

উত্তর:


19
  1. হ্যাঁ. লাইনের শেষের সাথে$ মেলে , লাইনের শেষের পরে আসা নতুন লাইনের চরিত্রটি নয় ।
  2. কি C-M-s C-q C-jC-qএটির জন্য ডিফল্ট বাঁধাই quoted-insertএবং মিনিবাসেও কাজ করে। এই অভিব্যক্তি আক্ষরিক একটি newline অনুসন্ধানের: C-j

1
২. আপনি কি বলছেন যে নতুন লাইন চরিত্রটি ইমা্যাকস রেজেক্সে একটি পালানোর ক্রম হিসাবে প্রতিনিধিত্ব করা যাবে না?
সমস্ত

3
ইন্টারেক্টিভ পদ্ধতিতে অথবা elisp মাধ্যমে একটি newline অনুসন্ধানের জন্য কিনা (যেমন (looking-at "^J")যেখানে ^ জে দ্বারা ঢোকানো হয় C-q C-j), C-q C-jপদ্ধতির সবসময় কাজ করে। কিন্তু যখন এলিসপ ফাংশনগুলি একই looking-at \nকাজের মতো ব্যবহার করে; M-: (looking-at "\n") RETকার্সারটি যদি লাইনের শেষে হয় (এবং তার পরে একটি নতুন লাইন রয়েছে) তবে তা সত্য হয়ে উঠবে।
দক্ষ মোদী

2
কেবল উল্লেখ করার জন্য, যদি ব্যবহার করা হয় তবে regexp-builderআপনি এর সাথে একটি নতুন লাইন সনাক্ত করতে সক্ষম [\n]
Nsukami _

@Nsukami_: CMS এবং MX উভয় ম্যাচ ঘটতে [\n]করতে n
সমস্ত

13

ড্যান মন্তব্য করার মত, Regex যে একটি newline ম্যাচ হয় একটি newline।

আপনি এলিসপ হিসাবে উদ্ধৃত স্ট্রিংয়ে একটি নতুন লাইন উপস্থাপন করতে পারেন "\n"। এর জন্য কোনও অতিরিক্ত অতিরিক্ত রেজপ্লেক্স-নির্দিষ্ট সিনট্যাক্স নেই - আপনি ঠিক অন্য কোনও আক্ষরিক চরিত্রের মতোই একটি নতুন লাইন ব্যবহার করেন।

যদি আপনি ইন্টারেক্টিভভাবে একটি C-qC-jরেজিপেক্স প্রবেশ করিয়ে থাকেন তবে আপনি कौসালমোডি উত্তর উত্তর হিসাবে উল্লেখ করে নতুন লাইন inোকাতে পারেন।


1
ধন্যবাদ! ইম্যাকগুলিতে (এলিস্পে নয়), নতুন লাইনের চরিত্রের সাথে মিলের একমাত্র উপায় কি সিকিউ সিজে? \nএকটি নতুন লাইন চরিত্রের সাথে মেলে না।
17

1
হ্যাঁ. ঠিক আছে, আরও স্পষ্টভাবে, একটি রেজিএক্সপ্যাক ইন্টারেক্টিভভাবে প্রবেশ করার সময় একটি নতুন লাইন টাইপ করা একটি নতুন পংক্তির সাথে মিলের একমাত্র উপায় (যেহেতু একটি নতুন লাইনের জন্য কোনও রেজিপ্সপ এস্কেপ ক্রমিক নেই), এবং C-q C-jপ্রম্পটে একটি নিউলাইন টাইপ করার সবচেয়ে নির্ভরযোগ্য উপায়।
ফিল্ড করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.