নিয়মিত এক্সপ্রেশন (এডিটপ্যাড প্রো) ব্যবহার করে একটি চরকে আপার কেস রূপান্তর করুন


159

আমি নিয়মিত অভিব্যক্তিটি লিখেছিলাম যে আমি প্রতি ম্যাচ (যা কেবল একটি চরের) বড় হাতের অক্ষরে প্রতিস্থাপন করতে সক্ষম হব। আমি এডিটপ্যাড প্রো ব্যবহার করছি (তবে আমি অন্য যে কোনও সরঞ্জাম ব্যবহার করতে ইচ্ছুক, যতক্ষণ না এটি চেষ্টা করার জন্য নিখরচায়, যেহেতু আমাকে কেবল একবার এটি করা দরকার)।

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

আমি নির্বাচিত নিয়মিত অভিব্যক্তি লিখেছি এবং এখন আমি এটি পিছনের সাথে ব্যবহার করতে পারি ($ 1 ঠিক কাজ করে) তবে আমি এটিকে বড় হাতের অক্ষরের সাথে প্রতিস্থাপন করতে পারি না। আমি ভেবেছিলাম \ u $ 1 এর মতো কিছু কাজ করবে, তবে এটি এডিপ্যাড প্রোতে নেই।

যদি কোনও নিখরচায় সরঞ্জাম আমাকে এটি করতে না দেয় তবে আমার ধারণা, বিকল্পটি কেবল এটি সি তে করা ঠিক হবে তবে আমি কিছুটা তাড়াহুড়োয়াম এবং একটি সংকলকের কাছে নই, তাই আমাকে প্রথমে এক্সপ্রেস সংস্করণটি ডাউনলোড করতে হবে, তাই ... এমন একটি বৈশিষ্ট্য সমর্থন করে এমন কোনও সরঞ্জাম খুঁজে পাওয়া ভাল!

ধন্যবাদ!


3
এই প্রশ্নটি কি সুপারজারের পক্ষে আরও উপযুক্ত?
জর্জিসিসি

উত্তর:


273

টেক্সটপ্যাড আপনাকে এই ক্রিয়াকলাপটি সম্পাদন করার অনুমতি দেবে।

উদাহরণ:

test this sentence

কি সন্ধান করুন: এর সাথে \([^ ]*\) \(.*\) প্রতিস্থাপন করুন:\U\1\E \2

এর ফলে \Uনিম্নলিখিত সমস্ত অক্ষর উচ্চ হয়ে উঠবে

\Eবন্ধ করে দেবে\U

ফলাফলটি হবে:

TEST this sentence

13
.NET Regex (ব্যবহার না করে ToUpper) এই অপারেশন করার কোনও উপায় আছে কি ?
শিমি ওয়েটজ্যান্ডলার

34
নোটপ্যাড ++ এও কাজ করে।
শন

33
\U$1\Eমধ্যে সর্বোচ্চ টেক্সট
কোয়ার্টি

10
\U\1\Eমধ্যে তেজ
জে Katzwinkel

6
পিএইচপিএসটারমেও কাজ করে। যদিও আমার বিপরীত প্রয়োজন ছিল। আমাকে সমস্ত বড় হাতের বৈশিষ্ট্য মানগুলি (সম্ভবত '90s এর HTML থেকে) ছোট ক্ষেত্রে প্রতিস্থাপন করতে হয়েছিল। \L$1\Eকাজ করা ব্যবহার ।
এজাজ

30

আমি জানি যে এই থ্রেডটি এডিটপ্যাড প্রো সম্পর্কে, তবে আমি এখানে এসেছি কারণ আমার একটি জাভাস্ক্রিপ্ট রিজে এক্সপক্সের একই চাহিদা ছিল।

এখানে যে সমস্ত লোকদের একই টিপটির প্রয়োজন রয়েছে তাদের জন্য, আপনি প্রতিস্থাপন যুক্তি হিসাবে কোনও ফাংশন বা ল্যাম্বদা ব্যবহার করতে পারেন।

আমি -জাভাস্ক্রিপ্ট সমতুল্য হিসাবে সিএসএস নাম রূপান্তর করতে নীচের ফাংশনটি ব্যবহার করি , উদাহরণস্বরূপ, এতে "border-top"রূপান্তরিত হবে "borderTop":

    s = s.replace(/\-[a-z]/g, x => x[1].toUpperCase());

26

এডিটপ্যাড প্রো এবং পাওয়ারগ্রিপ এর একটি অনন্য বৈশিষ্ট্য রয়েছে যা আপনাকে পিছনের দিকের ক্ষেত্রে পরিবর্তন করতে দেয়। \U1বড় \L1হাতের অক্ষরে এবং ছোট হাতের \F1অক্ষরে এবং বড় হাতের অক্ষরে প্রথম অক্ষর এবং ছোট হাতের অক্ষরে প্রথম অক্ষর সন্নিবেশ করানো হয় । শেষ \I1অবধি, প্রতিটি শব্দের প্রথম অক্ষরকে মূলধন এবং ছোট অক্ষরে অন্য অক্ষর সহ এটি সন্নিবেশ করান।

সূত্র: গোয়েভার্টস, জান (2006) নিয়মিত এক্সপ্রেশন: সম্পূর্ণ টিউটোরিয়াল । Lulu.com। পি। 35 । আইএসবিএন 1411677609. গুগল বুকস। 25 জুন, 2010-এ পুনরুদ্ধার করা হয়েছে।


6

আপনি jEdit এ এটি করতে পারেন, jEdit এর সন্ধান এবং প্রতিস্থাপনের কথোপকথনে "বিয়ানশিল স্নিপেটের রিটার্ন মান" বিকল্পটি ব্যবহার করে। কেবল " [a-z]"এটির জন্য অনুসন্ধান করুন এবং প্রতিস্থাপন করুন " _0.toUpperCase()"(উদ্ধৃতি ব্যতীত)


1
আপনার প্রতিক্রিয়াটি প্রাথমিক প্রশ্নের সাথে সত্যিই সম্পর্কিত নয়, তবে গুগল করার সময় আমি এটি পেয়েছিলাম এবং ঠিক আমি যা খুঁজছিলাম তা ছিল। অান্তরিক ধন্যবাদ!
অ্যাডিটিশহিম 21

5

এছাড়াও আপনি ম্যাচ ব্যবহার প্রথম অক্ষর পুঁজিতে করতে \I1এবং \I2ইত্যাদি পরিবর্তে $1এবং $2


1

নোটপ্যাড ++ (নিয়মিত অভিব্যক্তি অনুসন্ধান মোড) এর জন্য অন্য একটি ব্যবহারের উদাহরণ

Find: (g|c|u|d)(et|reate|pdate|elete)_(.)([^\s (]+)
Replace: \U\1\E$2\U\3\E$4

উদাহরণ:

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