रेगुलर एक्सप्रेशंस (एडिटपैड प्रो) का उपयोग करके एक अपर को अपर केस में बदलें


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में उदात्त पाठ
Qwerty

10
\U\1\Eमें विम
जे Katzwinkel

6
PHPStorm में भी काम करता है। हालांकि मुझे इसकी विपरीत आवश्यकता थी। मुझे निचले मामले में सभी अपरकेस विशेषता मान (संभवतः 90s HTML से) बदलने पड़े। का उपयोग कर \L$1\Eकाम किया।
एजाज़

30

मुझे पता है कि यह थ्रेड एडिटपैड प्रो के बारे में है, लेकिन मैं यहां आया था क्योंकि मुझे जावास्क्रिप्ट regexp के साथ समान आवश्यकता थी।

जिन लोगों को यहां समान टिप की आवश्यकता है, उनके लिए आप एक फ़ंक्शन या लैम्ब्डा को प्रतिस्थापित तर्क के रूप में उपयोग कर सकते हैं।

मैं -जावास्क्रिप्ट नाम के साथ सीएसएस नामों को परिवर्तित करने के लिए नीचे दिए गए फ़ंक्शन का उपयोग करता हूं , उदाहरण के लिए, इसमें "border-top"रूपांतरित किया जाएगा "borderTop":

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

26

एडिटपैड प्रो और पावरग्रेप में एक अनूठी विशेषता है जो आपको बैकरेस्ट के मामले को बदलने की अनुमति देती है। \U1अपरकेस में पहले बैकरेन्स को \L1लोअरकेस में और \F1अपरकेस में पहले कैरेक्टर के साथ और लोअरकेस में शेष को सम्मिलित करता है । अंत में, \I1इसे प्रत्येक शब्द के पहले अक्षर से कैपिटल और दूसरे अक्षर को लोअरकेस में डाला जाता है।

स्रोत: गोएवर्ट्स, जनवरी (2006)। नियमित अभिव्यक्तियाँ: संपूर्ण ट्यूटोरियल । Lulu.com। पी। ३५ । आईएसबीएन 1411677609. गूगल बुक्स। 25 जून 2010 को लिया गया।


6

आप इसे jEdit में पा सकते हैं, jEdit की खोज और बदले जाने वाले संवाद में "बीनशेल स्निपेट का रिटर्न मान" विकल्प का उपयोग करके। बस (उद्धरण के बिना) " [a-z]"इसे खोजें और बदलें" _0.toUpperCase()"


1
आपकी प्रतिक्रिया वास्तव में प्रारंभिक प्रश्न से संबंधित नहीं है, लेकिन मैंने इसे गोलगप्पे खाते समय पाया और ठीक वैसा ही था जैसा मैं खोज रहा था। बहुत अच्छे धन्यवाद!
एडिटिसहेम

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.