আপনি কীভাবে রেগেক্সের সাথে ক্যাপচার গ্রুপকে ভিজ্যুয়াল স্টুডিও 2012, 2013, 2015 এবং ভিএস কোডে সন্ধান এবং প্রতিস্থাপন করবেন


254

আমি বুঝতে পারি যে এ সম্পর্কে অনেকগুলি প্রশ্ন রয়েছে, তবে তারা কোন ভিএস সংস্করণটি উল্লেখ করেছে তা আমি বিশেষভাবে উল্লেখ করে পাইনি none সেই গুরুত্বপূর্ণ তথ্যের অভাবের সাথে আমি এখনও পাওয়া উত্তরগুলি সফলভাবে ব্যবহার করতে পারিনি। সবচেয়ে সাধারণ ছিল

  • {} দিয়ে চারপাশে, capture 1, \ 2,। N দিয়ে ক্যাপচার প্রদর্শন করুন

তবে এটি ভিজ্যুয়াল স্টুডিওতে রেজেক্স ফাইন্ড এবং রিপ্লেসমেন্ট করার পুরানো পদ্ধতি বলে মনে হয়, এবং এটি ভিএস 2012 তে কাজ করে না।


1
সহায়তাটি পাওয়া খুব বেশি কঠিন নয়: অনুসন্ধান / প্রতিস্থাপনের কথোপকথনে, এফ 1; পাঠ্য সন্ধান এবং প্রতিস্থাপনের প্রথমদিকে ভিএস-এ নিয়মিত প্রকাশের সাথে একটি লিঙ্ক রয়েছে ; সেখানে দ্বিতীয় টিপটি আপনাকে নিয়মিত অভিব্যক্তিতে সাবস্টিটিউশনগুলি বোঝায় ; সেখানে এটি আপনাকে বেসিক দেয় এবং বলে যে একটি নাম্বারযুক্ত দলটি গঠন করা এবং নামকরণকৃত গ্রুপটি প্রতিস্থাপনের অধীনে আরও বিশদ রয়েছে ।
পিজেট্রাইল

2
@ পিজেট্রেইল এটি জেনে খুশি যে তারা ২০১২ থেকে ২০১৫ সালের মধ্যে তাদের ২০১২ সংস্করণটির জন্য একটি প্রশ্নের উত্তর দেওয়া আরও সহজ করে দিয়েছে the তবে ভোটের দ্বারা, আমি মনে করি এটি মোটামুটি সুস্পষ্ট যে এটি এখনও "খুব বেশি কঠিন নয়" সহায়তা খুঁজে পাওয়া যায় না। আইএমও: কোনও সাহায্য না সন্ধানে, প্রতিস্থাপন করতে, ক্যাপচার করার চেয়ে যদি স্ট্যাক ওভারফ্লো নিবন্ধে অনুসন্ধান করা এবং ভোট দেওয়া সহজ হয় তবে এটি হওয়া উচিত তার চেয়ে অনেক বেশি শক্ত।
SgtPooki

এমএসভিএস ২০১২/৩ সম্পর্কে আমাকে যে জিনিসগুলি বাগ দিয়েছে তা হ'ল দুটি পৃথক অনুসন্ধান / প্রতিস্থাপনের কথোপকথন, বিশেষত ছোট (সিটিআরএল-এইচ) একটি, যেখানে আমি দুর্ঘটনাক্রমে রাখি (কী-স্ট্রোকের সাথে সম্ভবত অন্য কোথাও অন্য কিছু বোঝানো হয়েছে) অনুসন্ধানের ক্ষেত্র পরিবর্তন করে the । তবে আমি যে বিষয়টিটি তৈরি করতে চাই তা হ'ল বৃহত্তর (Ctrl-Shift-H) কথোপকথনে ফাইন্ড এবং রিপ্লেস ফিল্ডগুলির পরে বোতাম রয়েছে যা আপনি যা খুঁজছেন তা সহ আরও গুরুত্বপূর্ণ সম্ভাবনার একটি তালিকা দেয় - তাই আপনি না সাহায্য দরকার! আমি অনুমান করি যে অনেকেই হয় বা Ctrl-H কথোপকথনে বোতামগুলি বা ল্যান্ড করে না এবং সেগুলি দেখতে পারে না।
পিজেট্রাইল

আমি সম্মত হই যে সহায়তাটি খুঁজে পাওয়া একটু বিরক্তিকর; আমার সন্দেহ হয় তারা সরল পাঠ্য অনুসন্ধানে অগ্রাধিকার দেয়। আমার পয়েন্ট বেশি যে যদি কেউ জানেনা বা অনুমান সেখানে এক হতে হবে পারেন যুক্তিসঙ্গতভাবে সহজে খুঁজে পাবে না | সবসময়ই আমি সেই রুটটি অনুসরণ করি, কারণ আমি একবার এটি প্রমাণিত হয়ে গেলে নীতিগত ডকুমেন্টেশন ব্যবহার করতে পছন্দ করি। আমি অস্বচ্ছন্দ শব্দ বলতে চাইনি; আমি মনে করি এটি উভয়ই "খুব শক্ত" এবং "খুব বেশি কঠিন নয়" - যদি আপনি "খুব বেশি না" যোগ্যতা অর্জনকে "হার্ড" হিসাবে দেখেন এবং "কিসের জন্য কঠোর?" এর উত্তরটিতে যুক্ত করেন তবে তারা বিরোধী নয় are
পিজেট্রাইল

আমি "জানতাম" যে রেগেক্সপ ট্যাগিং '()' ব্যবহার করছিল, ডকুমেন্টেশন পুনরায় পড়বে, এবং এটি কার্যকর হয়নি ... তাই আমি নিশ্চিত হয়ে এখানে এসেছি ... তারপর আমি আরও কিছু পরীক্ষা-নিরীক্ষা করেছি এবং এটি কার্যকর হয়েছে। সুতরাং আইএমএইচও এমএসডিএন ডকুমেন্টেশনের খুব পরিষ্কার হওয়া দরকার যে () আমাদের মধ্যে যারা পুরানো ভিএস 6 "ট্যাগ" নামকরণ শিখতে হয়েছিল তাদের জন্য একটি অভিব্যক্তি "ট্যাগ" করতে ব্যবহৃত হয়। তারা যদি একই নামকরণটি ব্যবহার করতে পারে তবে এটি দুর্দান্ত হবে। সংখ্যাযুক্ত গোষ্ঠীগুলি ... কেবলমাত্র যথেষ্ট পরিমাণে আইএনএইচও সিন্যাপগুলিকে জ্বালিয়ে দেয় না।
রস ইয়ংব্লুড

উত্তর:


355

ভিএস 2012 এবং ভিএস 2015-এ সন্ধান এবং প্রতিস্থাপন করতে আপনি নিম্নলিখিতটি করছেন:

উদাহরণ (সিওনিপকে ধন্যবাদ)

অনুসন্ধানের বিকল্পগুলিতে, 'নিয়মিত প্রকাশগুলি ব্যবহার করুন' চেক করা হয়েছে কিনা তা নিশ্চিত হয়ে নিন এবং এটি অনুসন্ধানের জন্য পাঠ্য হিসাবে নিম্নলিখিতটি রাখুন:

_platformActions.InstallApp\((.+)\)

এবং এটির সাথে প্রতিস্থাপনের জন্য পাঠ্য হিসাবে নিম্নলিখিতগুলি:

this.Platform().App($1).Install()

দ্রষ্টব্য: যেমন স্লাকস নীচে একটি মন্তব্যে উল্লেখ করেছেন, রেজিেক্স সিনট্যাক্সের পরিবর্তনটি VS2012 স্ট্যান্ডার্ড। নেট রেজেক্স ইঞ্জিনে স্যুইচ করার কারণে।

দ্রষ্টব্য: অন্য মন্তব্যকারী উল্লেখ করেছেন যে এটি ভিজ্যুয়াল স্টুডিও কোড (vscode) এও কাজ করে


10
আরও সাধারণ হওয়ার জন্য, ভিএস ২০১২ এখন স্ট্যান্ডার্ড। নেট রেজেক্স ইঞ্জিন ব্যবহার করে।
স্ল্যাक्स

4
আপনার মধ্যে সময়ের গৃহস্থালির কাজ অব্যাহতি প্রয়োজন হবে না _platformActionsএবং InstallApp?
rory.ap

এখন সে সম্পর্কে ভাবনা, এটি বোধগম্য হবে। আমি এটি পরীক্ষা করিনি। সেখানে কোনও সম্পাদনা নির্দ্বিধায় ফেলুন।
এসজিটিপুকি

1
শেষ পর্যন্ত আমি নাম হিসাবে নাম ব্যবহার করেছি মনে হয় আমার পক্ষে কমপক্ষে কাজ করে না। (?<rval>.+)অনুসন্ধানে এবং প্রতিস্থাপনে${rval}
মার্ক শুলথিস

2
কিছু অতিরিক্ত সহায়তা: আপনি যদি জিনিসটিকে (। *) $ 18 দিয়ে প্রতিস্থাপন করতে চান (ক্যাপচারের পরে সরাসরি '8' যুক্ত করুন) আপনাকে জিনিসটি ব্যবহার করতে হবে 8 {1} 8
লূক ব্লুম

17

এর উদাহরণ যুক্ত করতে এখানে আমার কোডটিতে আমাকে কিছু করতে হয়েছিল:

কি সন্ধান করুন:

_platformActions.InstallApp\((.+)\)

প্রতিস্থাপন:

this.Platform().App($1).Install()

এটি ইনস্টল অ্যাপ (এক্স) এর সাথে যে কোনও কলকে প্রতিস্থাপন করে Pপ্ল্যাটফর্ম () App অ্যাপ (এক্স) n ইনস্টল করুন ()।

* অনুসন্ধান বিকল্পগুলিতে "নিয়মিত এক্সপ্রেশন ব্যবহার করুন" চিহ্নিত করতে ভুলবেন না


9

আপনি যদি গ্রুপের নাম ব্যবহার করে (উপরের মতো একই নমুনা ব্যবহার করে) কাজ করতে চান:

কি সন্ধান করুন:

_platformActions\.InstallApp\((?<mygroupname>.+)\)

প্রতিস্থাপন:

this.Platform().App(${mygroupname}).Install()

8

উপরের উত্তরগুলি উন্নত করতে: আপনার প্রতিস্থাপন করা উচিত

_platformActions.InstallApp\((.+)\)

সঙ্গে

this.Platform().App(${1}).Install()

আপনি যদি ক্যাপচারের পিছনে কোনও সংখ্যা যুক্ত করতে চান তবে $ {1} মনে রাখবেন । সংযুক্তি $18দিয়ে প্রথম নয়, 18 তম অনুসন্ধান ক্যাপচারটি 8sertোকানোর চেষ্টা করবে।

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