फ़्लिपिंग कोष्ठक


4

मेरे पास फ़्लिप कोष्ठक के साथ कुछ पाठ है। उदाहरण के लिए, इसके बजाय (text-in-parentheses)मेरे पास है)text-in-parentheses(

क्या पाठ में सभी कोष्ठकों को फ्लिप करने का एक आसान तरीका है? यदि हां, तो कैसे?

अद्यतन: यह एक सादा पाठ फ़ाइल है, हर एक कोष्ठक फ़्लिप है। मैं विंडोज 7 का उपयोग कर रहा हूं।


क्या यह हर किसी के लिए फ़्लिप किया गया है, या किसी एक दस्तावेज़ में बस कुछ चीजें? आप किस OS का उपयोग कर रहे हैं? (कृपया जवाब के साथ अपनी पोस्ट को अपडेट करें)
nerdwaller

धन्यवाद, मैं कोई रेगेक्स जीनियस नहीं हूं (और न ही मैं विंडोज़ सीएमडी / पावरशेल से परिचित हूं) - इसलिए मुझे यकीन है कि कोई मुझे जवाब देगा।
nerdwaller

जवाबों:


6

शक्ति कोशिका

लघु संस्करण

(Get-Content "in.txt" -raw) -replace "\(", "`0)" -replace "\)", "(" -replace "(`0\()", ")" >> "out.txt"

यह भी संभव है:

Set-Content "out.txt" ((Get-Content "in.txt" -raw) -replace "\(", "`0)" -replace "\)", "(" -replace "(`0\()", ")")
  • पुस्तकें in.txt
  • करने के लिए लिखता है out.txt(क्रम पंक्ति के अंत को देखने के लिए पहले कोड नमूने में क्षैतिज स्क्रॉल)

लंबे संस्करण

$in = "in.txt";
$out = "out.txt";

(Get-Content $in -raw) -replace "\(", "`0)" -replace "\)", "(" -replace "(`0\()", ")" >> $out

यह भी संभव है:

Set-Content $out ((Get-Content $in -raw) -replace "\(", "`0)" -replace "\)", "(" -replace "(`0\()", ")")

व्याख्या

कृपया एक पल के लिए गुप्त backslashes पर ध्यान न दें - वे केवल एस्कैपिंग कोष्ठक के लिए अच्छे हैं जो नियमित अभिव्यक्तियों में एक विशेष अर्थ रखते हैं।

हम पहले की प्रत्येक पुनरावृत्ति की जगह (से NUL)(देखें NUL चरित्र )। फिर, हम प्रत्येक के )द्वारा प्रतिस्थापित करते हैं (। अंतिम चरण के रूप में, इसके NUL(द्वारा पुन: प्रतिस्थापित किया जाता है )

इस तरह से, हम यह सुनिश्चित करते हैं कि हम "डबल रिप्लेसमेंट" न करें, उदाहरण के लिए:

Initial string value:
(test)

After replacing "(" by ")"
)test)

After replacing ")" by "("
(test(

चेतावनी

फ़ाइल में स्वयं अनुक्रम नहीं होना चाहिए NUL)। इससे मेरी पॉवर्सशेल स्क्रिप्ट की गलत व्याख्या होगी क्योंकि मैंने एनयूएल के चरित्र को एक विशेष संकेतक के रूप में इस्तेमाल किया था (उदाहरण के लिए, हरे रंग की स्क्रीन का उपयोग करते समय और हरे रंग के कपड़े पहनने पर यही स्थिति आती है )।


यह वही है जो मैं करने की कोशिश कर रहा था - लेकिन आपके पीछे, पीएस के लिए नया लेकिन सीएमडी की तुलना में बहुत बेहतर दिखता है। +1
nerdwaller

@nerdwaller धन्यवाद। बैच में स्ट्रिंग प्रतिस्थापन प्रोग्रामिंग और कोड गोल्फ के लिए एक अच्छी पहेली हो सकती है। हालांकि। :)
ComFreek

3

मुझे यकीन है कि ऐसा करने के लिए सिंगल-स्टेप तरीके हैं, लेकिन एक त्वरित तरीका सभी एक पराने को एक अद्वितीय चरित्र में स्विच करना है, जैसे ^, फिर अन्य सभी पेरेन को उचित पेरेन पर स्विच करें, फिर विशेष चार को स्विच करें विरोधी पेरेन के लिए।

उदाहरण के लिए नोटपैड में:

  1. सभी को बदलें (^ के साथ)
  2. सभी को बदलें)
  3. सभी ^ से बदलें)

सभी मैं जोड़ूंगा, ^ के साथ बदलने के बजाय, *! @ # & जैसे अधिक यादृच्छिक पैटर्न के साथ बदलें! जो पाठ में घटित होने की संभावना अधिक है।
किंजल दीक्षित
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.