रेगेक्स लोअरकेस अक्षरों के साथ अपरकेस को प्रतिस्थापित करता है


220

मैं रेपेक्स का उपयोग करके संबंधित निचले अक्षरों के साथ अपरकेस अक्षरों को बदलने की कोशिश कर रहा हूं। इसलिए कि

EarTH:   1,
MerCury: 0.2408467,
venuS:   0.61519726,

हो जाता है

earth:   1,
mercury: 0.2408467,
venus:   0.61519726,

उदात्त पाठ में। मैं केवल उन शब्दों में अक्षरों को कैसे कम कर सकता हूं जिनमें निचले और बड़े अक्षर दोनों होते हैं? ताकि यह प्रभावित हो venUsऔर न हो VENUS

जवाबों:


393

आप कर सकते हैं:

खोजें: (\w) इसके साथ बदलें:\L$1

या पाठ का चयन करें, ctrl+ K+ L


7
उत्तम। बहुत उपयोगी। क्या आप कुछ संसाधन की ओर इशारा कर सकते हैं जो '\ _' जैसे परिवर्तनों को सूचीबद्ध करते हैं?
कोडियस-जेआर

17
Sublime अपने RegEx समर्थन के लिए Boost का उपयोग करता है, ये प्रारूप स्ट्रिंग जैसे \ L: boost.org/doc/libs/1_44_0/libs/regex/doc/html/booc_regex/…
एलेक्स के।

4
और इंटेलीज में
पैट्रिक

11
नोट: अपरकेस पर जाने के लिए, आपको आवश्यकता होगी\U
takanuva15

2
केवल एक एकल पैरामीटर को कम करने के लिए, लोअरकेस सेक्शन को समाप्त करने के लिए इसके बाद \ E ​​डालें: $1\L$2\E$3
माइकल

129

मुझे लगा कि यह दूसरों के लिए भी काम आ सकता है:

लगता है:

  • ([A-Z])(.*)

बदलने के:

  • \L$1$2-> $1और BUT$2 को कम करने के लिए सभी अक्षरों को परिवर्तित करेगा
  • \l$1$2-> मैं केवल पहले अक्षर $1को लोअरकेस में बदल दूंगा और बाकी सब कुछ उसी तरह छोड़ दूंगा

वही अपरकेस के लिए जाता है \Uऔर\u


7
\l$1$2केवल $1इस मामले में पूरे लोअर केस को यहां बनाएंगे , क्योंकि $iइसमें केवल एक अक्षर है। \l=> निचले मामले के लिए \uपहला पत्र और ऊपरी मामले के लिए पहला पत्र निम्नलिखित। सभी निम्नलिखित पत्रों को कहां \Uऔर \Iक्या करना है।
12

5
ध्यान दें कि \Eएक \Lया \Uअनुक्रम समाप्त होता है।
लुडोविक क्रूट

77

जैसे रेगेक्स के साथ खोज करने से पहले [A-Z], आपको केस संवेदनशील बटन (या Alt+ C) को दबा देना चाहिए (जैसा कि लीमोर ने अच्छी तरह से स्वीकार किए गए उत्तर में संपादित करने का सुझाव दिया है)। बस स्पष्ट होने के लिए, मैं कुछ अन्य उदाहरण छोड़ रहा हूं:

  1. शब्दों को बड़ा करें
    • खोजें: (\s)([a-z])( \sनई लाइनों से भी मेल खाता है, अर्थात "venuS" => "VenuS")
    • बदलने के: $1\u$2
  2. अपुष्ट शब्द
    • खोजें: (\s)([A-Z])
    • बदलने के: $1\l$2
  3. ऊंट मामले को हटाएं (उदाहरण के लिए cAmelCAse => ऊंटकेशी => ऊंटकेस)
    • खोजें: ([a-z])([A-Z])
    • बदलने के: $1\l$2
  4. शब्दों के भीतर लोअरकेस अक्षर (जैसे लोअरकेस => लोअरकेस)
    • खोजें: (\w)([A-Z]+)
    • बदलने के: $1\L$2
    • वैकल्पिक प्रतिस्थापन: \L$0
  5. शब्दों के भीतर बड़े अक्षर (जैसे अपरकेस => अपरकेस)
    • खोजें: (\w)([A-Z]+)
    • बदलने के: $1\U$2
  6. पूर्ववर्ती अपरकेस (उदा। अपरकेस => उत्तर प्रदेश)
    • खोजें: (\w+)([A-Z])
    • बदलने के: \U$1$2
  7. लोअरकेस पिछले (जैसे LOWERCase => लोअरकेस)
    • खोजें: (\w+)([A-Z])
    • बदलने के: \L$1$2
  8. बाकी बड़ा (जैसे अपरकेस => अपरकेस)
    • खोजें: ([A-Z])(\w+)
    • बदलने के: $1\U$2
  9. बाकी लोअरकेस (जैसे lOWERCASE => lOwercase)
    • खोजें: ([A-Z])(\w+)
    • बदलने के: $1\L$2
  10. शिफ्ट-राइट-अपरकेस (उदाहरण के लिए मामला => cAse => caSe => casE)
    • खोजें: ([a-z\s])([A-Z])(\w)
    • बदलने के: $1\l$2\u$3
  11. शिफ्ट-लेफ्ट-अपरकेस (जैसे CasE => CaSe => CAse => केस)
    • खोजें: (\w)([A-Z])([a-z\s])
    • बदलने के: \u$1\l$2$3

सवाल के बारे में (मैच कम से कम एक अपरकेस और एक छोटा अक्षर के साथ शब्दों और उन्हें लोअरकेस बनाने), leemour की टिप्पणी जवाब है सही जवाब । बस स्पष्ट करने के लिए, यदि बदलने के लिए केवल एक समूह है, तो आप केवल ?:आंतरिक समूहों (यानी गैर कैप्चर समूह ) में उपयोग कर सकते हैं या उन्हें बनाने से बच सकते हैं:

  • खोजें: ((?:[a-z][A-Z]+)|(?:[A-Z]+[a-z]))या([a-z][A-Z]+|[A-Z]+[a-z])
  • बदलने के: \L$1

2016-06-23 संपादित करें

इस उत्तर को संपादित करके टायलर ने सुझाव दिया कि # 4 के लिए एक वैकल्पिक खोज अभिव्यक्ति:

  • (\B)([A-Z]+)

प्रलेखन के अनुसार , \Bएक ऐसे चरित्र की तलाश करेंगे जो शब्द की सीमा पर नहीं है (अर्थात शुरुआत में नहीं और अंत में नहीं)। आप रिप्लेसमेंट ऑल बटन का उपयोग कर सकते हैं और यह ठीक वैसा ही काम करता है जैसे कि आपके पास (\w)([A-Z]+)एक्सप्रेशन है।

हालांकि, का नकारात्मक पहलू \Bहै कि यह शायद की वजह से एक प्रतिस्थापन की अनुमति नहीं है, है खोजने (यदि आप सही कारण पता है कि इस संपादित करें कृपया) के "सीमा नहीं" प्रतिबंध।


2

नियमित अभिव्यक्ति

खोजें :\w+

बदलें :\L$0

उदात्त पाठ खोज पैनल में नियमित अभिव्यक्ति को शक्ति देने के लिए बूस्ट लाइब्रेरी से पर्ल कम्पेटिबल रेगुलर एक्सप्रेशंस (PCRE) इंजन का उपयोग करता है।

\L सब कुछ को लोवरकेस में बदल देता है

$0 समूहों पर कब्जा


कृपया इसे पूर्ण उत्तर दें, न कि स्पष्टीकरण के साथ केवल एक कोड उत्तर।
पेट्ज़्यूरिच

1

BBEdit में यह काम करता है (उदा .: ID मानों को लोअरकेस में बदलना):

कोई भी मूल्य खोजें: <a id="(?P<x>.*?)"></a> लोअरकेस में समान बदलें:<a id="\L\P<x>\E"></a>

था: <a id="VALUE"></a> बन गया:<a id="value"></a>


0

इसे इस्तेमाल करे

  • खोजें: ([A-Z])([A-Z]+)\b
  • बदलने के: $1\L$2

सुनिश्चित करें कि केस सेंसिटिविटी चालू है (Alt + C)


यह काम नहीं करता है। यह 2+ अपरकेस अक्षरों से मेल खाता है। लेकिन मैं समझता हूं कि \Lयह लोअरकेस के लिए है। मैंने सवाल अपडेट किया।
लीमोर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.