ইন্টেলিজজে রেজিএক্স ব্যাকরেফারেন্স


129

নিম্নলিখিত রূপান্তর সম্পাদন করতে আমি ইন্টেলিজির সন্ধান এবং প্রতিস্থাপন বৈশিষ্ট্যটি ব্যবহার করতে চাই:

// Replace this
model.put('foo', 'bar')
// With this
model['foo'] = bar

আমি নিম্নলিখিত চেষ্টা করেছি:

সন্ধানের পাঠ্য: এর সাথে model.put\((.*),(.*)\) প্রতিস্থাপন করুন:model\[\\1\] = \\2

তবে ইন্টেলিজ মনে হয় না \\1এবং এর \\2পিছনে উল্লেখ রয়েছে। আমি একটি স্ল্যাশ চেষ্টা করেছি, কিন্তু এটি কাজ করে না।

উত্তর:


196

ইন্টেলিজজে রিপ্লেসমেন্ট ব্যাক রেফারেন্সের $1জন্য ব্যবহার করে ।

ইন্টেলিজের সাহায্য থেকে:

নিয়মিত প্রকাশ এবং তাদের বাক্য গঠন সম্পর্কে আরও তথ্যের জন্য java.util.regex এর জন্য ডকুমেন্টেশন দেখুন Back n ফর্ম্যাট না করে পিছনে উল্লেখগুলি ferences n হওয়া উচিত।


15
"\" এর মতো মনে হচ্ছে প্রয়োজনীয় নয়: jetbrains.com/idea/help/… । এছাড়াও, আমার পক্ষে এটি কেবল তখনই কাজ করে যদি আমি স্পষ্টভাবে আমার গোষ্ঠীটিকে "()" দিয়ে ঘিরে থাকি, অন্যথায় আমি পরে এটি উল্লেখ করতে পারি না। উদা: অনুসন্ধান (foo)প্রতিস্থাপন:$1bar
Ghedeon

@ গেডিয়ন: আপনার সম্ভবত উত্তর হিসাবে বা বিদ্যমান উত্তরের সাথে আপনার মন্তব্য যুক্ত করা উচিত। () প্রকাশ করার জন্য আপনার পরামর্শটি আমার পক্ষে কাজ করেছে what
মাইন্ড রিডার

+1 টি যে আমার সংশ্লিষ্ট সমস্যার সমাধান তথ্য বিট: আমি ডলার-কোঁকড়া চাদরে, অর্থাত্ সঙ্গে, ভেরিয়েবল প্রায় উদ্ধৃতি-প্লাস চাদরে প্রতিস্থাপন করছি '+ var +'করার ${var}কিছু টেমপ্লেট স্ট্রিং এবং জিনিসটা করতে পারেনি কেন intellij প্রতিস্থাপন শেষ না। $প্রতিস্থাপন এড়ানো প্রয়োজন সক্রিয় ।
worc

13

সংক্ষেপে বলতে গেলে, আপনি ব্যবহার করা আবশ্যক $1করতে $nজন্য প্রতিস্থাপন backreferences। \1বাক্যবিন্যাসটি কেবলমাত্র অনুসন্ধানের মধ্যে ব্যাক-রেফারেন্সের জন্য।

ইনটেলিজজে ২০১ 2016-এ, অ্যাপ-এ ডকুমেন্টেশন বিভ্রান্তিকর। এখানে পূর্ণ দস্তাবেজের একটি আরও ভাল উদ্ধৃতি:

যদি আপনার বর্তমান নিয়মিত অভিব্যক্তির বাইরে কোথাও ম্যাচ করা স্ট্রিংগুলি উল্লেখ করতে হয় (উদাহরণস্বরূপ, প্রতিস্থাপনের স্ট্রিং হিসাবে অন্য নিয়মিত অভিব্যক্তিতে), আপনি ডলার চিহ্ন ($ num, যেখানে num = 1..n) ব্যবহার করে এটি পুনরুদ্ধার করতে পারেন।

উত্স: 2016.1 নিয়মিত প্রকাশের বাক্য গঠন, টিপস এবং কৌশলগুলি ricks


2

আইডিয়া 9.0 (এবং সম্ভবত অন্যান্য সংস্করণগুলি) তে রেজেেক্সের জন্য ইন-প্রোডাক্ট প্রাসঙ্গিক সহায়তাটি ভুল বলে মনে হচ্ছে। এটি বলে:

  পিছনে রেফারেন্স
  \ N
  নবম ক্যাপচারিং গ্রুপ যাই হোক না কেন মিলছে

তবে আপাতদৃষ্টিতে, পূর্বের উত্তরে উল্লিখিত এবং আমার অভিজ্ঞতা হিসাবে, এটি সত্যিকার অর্থে back back n ব্যাক রেফারেন্সের জন্য \ n

"পাঠ্য প্রতিস্থাপন করুন" ডায়ালগ বাক্সে "নিয়মিত অভিব্যক্তি" রেডিও বিকল্পের পাশে '[সহায়তা]' লিঙ্কটি ক্লিক করে আপনি এই প্রাসঙ্গিক সহায়তা পেতে পারেন


0

ইন্টেলিজ আইডিইএ / রেফারেন্স / নিয়মিত এক্সপ্রেশন সিনট্যাক্স রেফারেন্স


স্যুট এক্সপ্রেশন ম্যাচ এবং ম্যাচ মনে রাখে। যদি আপনাকে একই নিয়মিত অভিব্যক্তির মধ্যে ম্যাচিং স্ট্রিং ব্যবহার করতে হয় তবে আপনি ব্যাকরেফারেন্স (\ num, যেখানে num = 1..n) ব্যবহার করে এটি পুনরুদ্ধার করতে পারেন। যদি আপনার বর্তমান নিয়মিত এক্সপ্রেশন (উদাহরণস্বরূপ, প্রতিস্থাপন ক্ষেত্রের অন্য নিয়মিত এক্সপ্রেশন) এর বাইরে মিলে যাওয়া স্ট্রিংগুলি উল্লেখ করতে হয় তবে আপনি ডলার চিহ্ন ($ num, যেখানে num = 1..n) ব্যবহার করে এটি পুনরুদ্ধার করতে পারেন। যদি আপনাকে পূর্বপরিচয়ের মধ্যে প্রথম বন্ধনীগুলি অন্তর্ভুক্ত করতে হয় তবে "(" বা ")" ব্যবহার করুন।


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