একে অপরের সাথে দুটি স্ট্রিং প্রতিস্থাপন করুন


9

আমি স্ট্রিংয়ের সমস্ত উপস্থিতি (স্ট্রিং 1 বলুন) অন্য স্ট্রিং (স্ট্রিং 2 বলুন) এবং তদ্বিপরীতের সাথে পরিবর্তন করতে চাই। সুনির্দিষ্টভাবে বলতে গেলে আমার কাছে একটি দীর্ঘ নথি রয়েছে এবং এই স্ট্রিংগুলি বহুবার ঘটে। আমি বর্তমানে যা করছি তা হ'ল স্ট্রিং 1 -> স্ট্রিং 3, তারপরে স্ট্রিং 2 -> স্ট্রিং 1 এবং শেষ পর্যন্ত স্ট্রিং 3 -> স্ট্রিং 2।

আমি ভাবছি যে ইতিমধ্যে ইমাসগুলিতে কোনও ফাংশন রয়েছে যা এটি করে। অন্যান্য সমাধান স্বাগত জানানো হয়।

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

সম্পাদনা 2: পাঠ্য অদলবদলের জন্য অনুসন্ধান / প্রতিস্থাপনের মতো বৈশিষ্ট্যের গৃহীত উত্তরটি এখন ঠিক আছে বলে মনে হচ্ছে।



@ টি.ভেরন আমি আপনার লিঙ্কটির গৃহীত উত্তরটি স্ক্র্যাচ বাফারে "এটি" "এর সাথে" প্রতিস্থাপনের জন্য ব্যবহার করার চেষ্টা করেছি কিন্তু এটি কার্যকর হয় না।
নাম

আমি খুব দ্রুত গ্রহণ করেছি। ( backwardsএবং region-noncontiguous-p) ডাকে শেষ দুটি আর্গুমেন্ট মন্তব্য করা perform-replaceএখানে কাজ করে তোলে (ইমাস 24.3)। আমি যখন উত্তরটি সম্পাদনা করার আগে একটি উপলক্ষ্য পাই তখন আমি ইম্যাক 25 এ এটি পরীক্ষা করব।
টি ভেরন

বিপরীতে @ টি.ভেরন, অন্য সমাধানটি প্যাকেজ প্লুর ব্যবহার করার পরামর্শ দিচ্ছে। মনে হচ্ছে সমস্যা ছাড়াই এই পরিস্থিতিতে কাজ করবে।
নাম

আমি অন্য প্রশ্নের গ্রহণযোগ্য উত্তর পরিবর্তন করেছি। গুগল সম্পর্কিত, হ্যাঁ, আমি কী করতে চেষ্টা করেছিলাম তা জানাতে কীওয়ার্ডগুলি খুঁজে পেতে আমার সমস্যা হয়েছিল। এবং হ্যাঁ, সদৃশগুলি ভাল! ব্লগ.স্ট্যাকওভারফ্লো
.

উত্তর:


11

ইন্টারেক্টিভ কেস-এর জন্য ক্যোয়ারী-রিপ্লেস-রিজেক্স (সিএম-%) প্রতিস্থাপনের জন্য তুলনামূলকভাবে অজানা using ব্যবহার করে এটি করতে পারে।

C-M-% \(string1\)\|\(string2\)
\,(if (equal \& "string1") "string2" "string1")

যদি প্রতিস্থাপন পাঠ্যে \ থাকে, তারপরে একটি লিস্প এক্সপ্রেশন থাকে, তবে এটি প্রতিস্থাপন হিসাবে সেই অভিব্যক্তির মানটি ব্যবহার করে। এক্ষেত্রে এক্সপ্রেশনটি একটি "if" যা একটি শর্ত নেয় এবং সত্য এবং মিথ্যা মামলার রিটার্ন মান দেয়।

মন্তব্যে এটি ব্যবহার করার পরামর্শ দেওয়া হয়েছে

\, (যদি \ 1 "স্ট্রিং 2" "স্ট্রিং 1" থাকে)

এটি কাজ করে কারণ the 1 "স্ট্রিং 1" হবে যদি প্যাটার্নটি স্ট্রিং 1 এর সাথে মেলে এবং অন্যথায় শূন্য হবে। লিস্প যেকোন নন-মানকে সত্য হিসাবে গ্রহণ করে। যদিও এটি কাজ করে এবং খাটো হয়, আমি আমার উত্তরটি আরও দরকারী বলে মনে করি। আমি মনে করি কোডটি কারও কাছে আরও পঠনযোগ্য যার লিস্প জ্ঞান সীমাবদ্ধ। "দ্বিতীয়" প্যাটার্নটি যদি দেওয়া হয় তবে এটির এখনও দ্বিতীয় কার্যকারিতা রয়েছে

\(string1\|string2\)

অথবা এমনকি

string1\|string2

2
সদৃশ প্রার্থীর কিছু মন্তব্য \,(if \1 "string2" "string1")regexp ব্যবহার করে সহজ সিনট্যাক্সের পরামর্শ দিয়েছে \(string1\)\|string2
টি ভেরন

এর শেষ দুটি অনুচ্ছেদ দেখুন (emacs) Regexp Replace
তুলসী

-1

ঠিক আছে, ম্যাক্রোর সাহায্যে এটি সহজ হতে পারে:

F3C-saRETC-bM-tF4। আপনার প্রশ্নের এই ম্যাক্রো ব্যবহার করে এই ফলাফলটি চিৎকার করে:

আমি স্ট্রিং এ এর ​​সমস্ত উপস্থিতি a (স্ট্রিং 1 বলুন) এর সাথে অন্য স্ট্রিং (স্ট্রিং 2 বলুন) এবং তদ্বিপরীত পরিবর্তন করতে চাই। সুনির্দিষ্টভাবে বলতে গেলে আমার কাছে একটি নথি দীর্ঘ রয়েছে এবং এই স্ট্রিংগুলি বহুবার ঘটে। আমি বর্তমানে যা করছি তা হ'ল স্ট্রিং 1 -> স্ট্রিং 3, তারপরে স্ট্রিং 2 -> স্ট্রিং 1 এবং শেষ পর্যন্ত স্ট্রিং 3 -> স্ট্রিং 2।

আমি ভাবছি যে ইতিমধ্যে ইমাসগুলিতে কোনও ফাংশন রয়েছে যা এটি করে। অন্যান্য সমাধান স্বাগত জানানো হয়।

আমি শব্দের পরে aএবং শব্দের পরে যে কোনও শব্দের মধ্যে অবস্থান স্থানান্তর করছি । আপনি পরে পুরো ম্যাক্রোটিকে নতুন করে সংজ্ঞায়িত না করে অন্য শব্দের স্থানান্তর করতে এই জাতীয় ম্যাক্রো সম্পাদনা করতে পারেন, আপনি ম্যাক্রোটি সম্পাদনা করতে পারেন C-xC-kRET


1
আমি মনে করি না যে প্রশ্নটি শব্দের স্থানান্তরের সাথে সম্পর্কিত।
টি ভেরন

@ টি.ভেরন এটি তবে তিনি আরও বেশি স্বয়ংক্রিয় পদ্ধতি গ্রহণ করতে চান বলে মনে হয়।
শাকরা

1
আপনার ম্যাক্রো যা করে তা হ'ল পরের শব্দের সাথে প্রতিটি "এ" বিনিময় (ট্রান্সপোসোসিং)। "একটি স্ট্রিং"> "স্ট্রিং এ" ইত্যাদি he তিনি যা করতে চান তা হ'ল প্রতিটি "ক" এর সাথে "" "এবং" "" "সাথে" এ "প্রতিস্থাপন করুন।
টি ভেরন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.