नोटपैड ++ में प्रत्येक स्ट्रिंग में निहित संख्याओं के सभी तारों को कैसे बदलें?


108

मैं निम्नलिखित पैटर्न के साथ सभी मूल्यों को खोजने की कोशिश कर रहा हूं:

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

और इसे स्कोप के अंदर मूल्य के साथ बदलें।

मैं पैटर्न खोजने के लिए निम्नलिखित रेगेक्स का उपयोग कर रहा हूं:

.*"\d+"

मैं एक प्रतिस्थापन कैसे कर सकता हूं?


2
प्रतिस्थापन भाग क्या है? क्या आप एक उदाहरण दे सकते हैं?
पूर्ण

। ^ * value = "([^"] *) "* $ इस regex की जाँच करें और मूल्य \ 1 जहां मूल्य की जरूरत repace।
निखिल एस

जवाबों:


191

नोटपैड ++ में, प्रतिस्थापन मेनू खोलने के लिए Ctrl+ हिट Hकरने के लिए।

फिर यदि आप "रेगुलर एक्सप्रेशन" बटन को चेक करते हैं और आप अपने रिप्लेसमेंट में अपने मैचिंग पैटर्न के एक हिस्से का उपयोग करना चाहते हैं, तो आपको "कैप्चर ग्रुप्स" ( Google पर और पढ़ें ) का उपयोग करना होगा । उदाहरण के लिए, मान लें कि आप निम्न पंक्तियों में से प्रत्येक का मिलान करना चाहते हैं

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

.*"\d+"पैटर्न का उपयोग करना और केवल संख्या रखना चाहते हैं। तब आप अपने मिलान पैटर्न में एक कैप्चर समूह का उपयोग कर सकते हैं, कोष्ठक का उपयोग कर सकते हैं (और )जैसे .*"(\d+)":। तो अब आपके प्रतिस्थापन में आप बस लिख सकते हैं $1, जहाँ $ 1 कैप्चरिंग समूह के मूल्य का संदर्भ देता है और प्रत्येक सफल मैच के लिए नंबर वापस कर देगा। यदि आपके पास दो कैप्चर समूह हैं, उदाहरण के लिए (.*)="(\d+)", $1स्ट्रिंग लौटाएगाvalue$2 वापस करेगा और नंबर वापस कर देगा।

तो उपयोग करके:

खोजें: .*"(\d+)"

बदलने के: $1

यह तुम्हें लौटा देगा

4
403
200
201
116
15

कृपया ध्यान दें कि उपर्युक्त पैटर्न के मिलान के कई वैकल्पिक और बेहतर तरीके हैं। उदाहरण के लिए पैटर्न value="([0-9]+)"बेहतर होगा, क्योंकि यह अधिक विशिष्ट है और आप सुनिश्चित होंगे कि यह केवल इन रेखाओं से मेल खाएगा। कैप्चर समूहों के उपयोग के बिना प्रतिस्थापन करना भी संभव है, लेकिन यह थोड़ा अधिक उन्नत विषय है, इसलिए मैं इसे अभी के लिए छोड़ दूँगा :)


19
प्रतिस्थापित $1करने के लिए, मेरे लिए काम नहीं किया। मैंने \1इसके बजाय इस्तेमाल किया और यह काम किया।
जेसन व्हीलर

12
\1नोटपैड ++ के सभी संस्करणों में काम करता है। $1केवल नए में काम करता है।
कुलुब

मुझे लगता है कि यह Hex Editorप्लगइन के साथ काम नहीं कर रहा है । हेक्स व्यू मोड में नोटपैड ++ Regular Expressionसर्च / रिप्लेसमेंट का विकल्प नहीं दिखाता है । टेक्स्ट व्यू मोड में मुझे Regular Expressionखोज / बदलें का विकल्प दिखाई देता है। मैं नोटपैड ++ संस्करण 6.9.2 का उपयोग कर रहा हूं, जो इस समय का वर्तमान संस्करण है।
केविन फेगन

15

psxls ने शानदार जवाब दिया लेकिन मुझे लगता है कि मेरा नोटपैड ++ संस्करण थोड़ा अलग है इसलिए $ (डॉलर का चिह्न) कैप्चरिंग काम नहीं आया।

मेरे पास नोटपैड ++ v.5.9.3 है और यहां बताया गया है कि आप अपना कार्य कैसे पूरा कर सकते हैं:

पैटर्न के लिए खोजें: value = \ "([0-9] *) \" और इसके साथ प्रतिस्थापित करें: \ 1 (जो भी आप उस कैप्चरिंग समूह के आसपास करना चाहते हैं)

पूर्व। चौकोर कोष्ठक से घिरा हुआ

[\ 1] -> मूल्य का उत्पादन करेगा = "[4]"


1
\1मुझे नंबर रखने में मदद की, लेकिन इसके पीछे की बोली को हटा दिया। मैंने दस्तावेज़ में 7400 लाइनें लिखी थीं tablename.columnname = '12345'। पहला उद्धरण हटाना आसान था, दूसरा आपके \1बदले हुए टेक्स्टबॉक्स में उपयोग किया गया था । धन्यवाद, +1
बेन फ्रैंसेन

6

बदलने के (.*")\d+(")

साथ में $1x$2

xआपका "मान स्कूप्स के अंदर" कहां है।


0

मेरे पास नोटपैड ++ v6.8.8 है

खोजें : [([ए-जेडए-जेड]]]

बदलने के : [\ '\ 1 \']

का उत्पादन करेंगे: $ सरणी [XYZ] => $ सरणी ['XYZ']


-3

खोजें: value="([\d]+|[\d])"

बदलने के: \1

यह वास्तव में आपको लौटा देगा

4
403
200
201
116
15

js:

a='value="4"\nvalue="403"\nvalue="200"\nvalue="201"\nvalue="116"\nvalue="15"';
a = a.replace(/value="([\d]+|[\d])"/g, '$1');
console.log(a);

3
यह जावास्क्रिप्ट समाधान उस प्रश्न से कैसे संबंधित है जिसे नोटपैड ++ के साथ टैग किया गया था?
जेसन एलर

कैसे दोषपूर्ण, टूटी हुई प्रतिक्रियाएं 1 और 2 उस प्रश्न से संबंधित हो सकती हैं जिसे नोटपैड ++ के साथ टैग किया गया था?
user3178007

मैंने यहाँ सवाल क्यों पूछा? क्योंकि मैं सवाल पैदा नहीं कर सकता। क्योंकि मेरे पास पर्याप्त प्रतिष्ठा स्कोर नहीं है।
user3178007

1
सवाल पूछने के लिए ऐसी कोई प्रतिष्ठा की आवश्यकता नहीं है जैसा कि आप दावा करते हैं - आप संभवतः प्रतिबंधित नहीं कर सकते थे। पुन: प्रयास करें: stackoverflow.com/questions/ask
बोल्ट

सवाल पूछा गया था। stackoverflow.com/questions/24112018/… लेकिन खोजने के लिए शब्दों में सीमित है। सीमा है!
user3178007
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.