मैं रेगेक्स और नोटपैड ++ के साथ सभी गैर-एएससीआईआई पात्रों को कैसे निकालूं?


147

मैंने बहुत खोज की, लेकिन कहीं नहीं लिखा है कि नोटपैड ++ से गैर-एएससीआईआई पात्रों को कैसे हटाया जाए।

मुझे यह जानने की जरूरत है कि खोजने और बदलने में कौन सी कमांड लिखनी है (चित्र के साथ यह बहुत अच्छा होगा)।

  • अगर मैं सभी ASCII शब्दों / लाइनों को एक सफेद सूची और बुकमार्क बनाना चाहता हूं, तो गैर-ASCII लाइनें अनमार्क की जाएंगी

  • यदि फ़ाइल काफी बड़ी है और सभी ASCII लाइनों का चयन नहीं कर सकती है और केवल गैर-ASCII वर्ण वाली लाइनों का चयन करना चाहती है ...

जवाबों:


263

यह अभिव्यक्ति गैर- ASCII मूल्यों की खोज करेगी:

[^\x00-\x7F]+

'खोज मोड = नियमित अभिव्यक्ति' पर क्लिक करें, और क्लिक करें Find Next

स्रोत: किसी भी ASCII चरित्र को Regex


4
और सिर्फ अगर यह स्पष्ट नहीं है, यदि आप "^" को हटाते हैं, तो आप ASCII पंक्तियों को खोज रहे हैं
माइक एम

7
अच्छा काम करता है, लेकिन मुझे सेट करना पड़ा Encoding->Encode in ANSI। अन्यथा कुछ भी नहीं मिल पा रहा था।
१२:२२ पर फोमग्य

1
अपने regexp- खोज विकल्प (तारांकन-बटन) के साथ नेटबीन्स में पूरी तरह से काम करता है
टेसन

वीएस-कोड में काम करता है, रेगेक्स खोज विकल्प पर क्लिक करना न भूलें!
यशस्वी

4
यदि आप \ r और \ n - कैरेज रिटर्न और लाइनफीड पात्रों को रखना चाहते हैं - आप इस रेगेक्स का उपयोग कर सकते हैं: [\ x00- \ x09 \ x0B- \ x0C \ x0E- \ X1F] +
स्टीफ़न विंकलर

53

नोटपैड ++ में, यदि आप मेनू सर्च में जाते हैंरेंज में वर्ण खोजेंगैर-एएससीआईआई कैरेक्टर (128-255) तब आप दस्तावेज़ के माध्यम से प्रत्येक गैर-एएससीआईआई चरित्र में कदम रख सकते हैं।

यदि आप सभी गैर-ASCII वर्णों के लिए दस्तावेज़ में लूप करना चाहते हैं, तो " चारों ओर लपेटें " पर टिक करना सुनिश्चित करें ।

स्क्रीनशॉट "रेंज में खोजें"


3
यह अच्छी तरह से काम करता है, लेकिन एक सूची में सभी परिणाम नहीं दिखाता है और कोई "प्रतिस्थापित" विकल्प नहीं है
एलेक्स

नीट ... क्योंकि मैं हमेशा गैर-एएससीआईआई के लिए रेगेक्स को भूल जाता हूं और हर बार इस पृष्ठ पर वापस जाने के लिए Google को :)
जीन-फ्रेंकोइस टी।

27

ProGM के उत्तर के अलावा, यदि आप NUL या ACK जैसे बक्से में वर्ण देखते हैं और उनसे छुटकारा चाहते हैं, तो वे ASCII नियंत्रण वर्ण (0 से 31) हैं, आप उन्हें निम्न अभिव्यक्ति के साथ पा सकते हैं और उन्हें हटा सकते हैं:

[\x00-\x1F]+

सभी गैर- ASCII और ASCII नियंत्रण वर्णों को निकालने के लिए, आपको इस regex से मेल खाते सभी वर्णों को हटा देना चाहिए:

[^\x1F-\x7F]+

से मूल्यों \x00और \x1Fपहले से ही ProGM द्वारा जवाब में मिलान किया जाता है।
यूनीहेड्रॉन

2
वे उन मूल्यों के रूप में मेल खाते हैं जिन्हें आप रखना चाहते हैं। मैं सिर्फ यह सुझाव दे रहा था कि आप उनसे छुटकारा पाना चाहते हैं।
ब्रुनेरी

इकाई विभाजक चरित्र को बाहर करने के लिए अंतिम उदाहरण 20 से शुरू होना चाहिए। हो सकता है कि 7F को बाहर करने के साथ-साथ यह एक नियंत्रण चरित्र भी हो।
fgb

प्रतिभाशाली! मैंने qdap R पैकेज का उपयोग करके सभी pesky गैर-ASCII वर्णों को निकाल दिया:mgsub("[^\x1F-\x7F]+", "", text_vector, fixed = FALSE)
पाब्लो एडम्स

22

सभी गैर- ASCII वर्णों को हटाने के लिए, आप निम्नलिखित प्रतिस्थापन का उपयोग कर सकते हैं: [^\x00-\x7F]+

गैर- ASCII निकालना

वर्णों को हाइलाइट करने के लिए, मैं खोज विंडो में मार्क फ़ंक्शन का उपयोग करने की सलाह देता हूं : यह गैर-एएससीआईआई वर्णों को हाइलाइट करता है और उनमें से एक को शामिल करने के लिए एक बुकमार्क लगाता है।

यदि आप इसके बजाय ASCII वर्णों पर एक बुकमार्क और हाइलाइट करना चाहते हैं, तो आप ऐसा करने के लिए regex [\x00-\x7F]का उपयोग कर सकते हैं ।

गैर-एएससीआईआई को हाइलाइट करना

चियर्स


1
आप [^ \ x00- \ x7F] खोज अभिव्यक्ति copypaste करना चाहते हैं
लकड़बग्घा

2
यदि आप \ r और \ n - कैरेज रिटर्न और लाइनफीड पात्रों को रखना चाहते हैं - आप इस रेगेक्स का उपयोग कर सकते हैं: [\ x00- \ x09 \ x0B- \ x0C \ x0E- \ X1F] +
स्टीफ़न विंकलर

4

नई लाइनें रखने के लिए:

  1. पहली बार नई लाइन के लिए एक चरित्र का चयन करें ... मैंने # का उपयोग किया।
  2. विस्तारित विकल्प का चयन करें।
  3. इनपुट \ n # के साथ बदलें
  4. हिट रिप्लेस ऑल

आगे:

  1. बदलें विकल्प नियमित अभिव्यक्ति का चयन करें।
  2. यह इनपुट: [^ \ x20- \ x7E] +
  3. रिप्लेस को खाली रखें
  4. हिट रिप्लेस ऑल

अब, बदलें विकल्प को विस्तारित करें और # के साथ # बदलें का चयन करें

:) अब, आपके पास एक साफ ASCII फाइल है;)


3

एक और अच्छी चाल है अपने संपादक में UTF8 मोड में जाना ताकि आप वास्तव में इन मजेदार पात्रों को देख सकें और उन्हें स्वयं हटा सकें।


1

दूसरा रास्ता...

  1. यदि आपके पास पहले से यह नहीं है तो पाठ FX प्लगइन स्थापित करें
  2. TextFX मेनू विकल्प पर जाएं -> सभी गैर प्रिंट करने योग्य वर्णों को # zap करें। यह सभी अमान्य वर्णों को 3 # प्रतीकों से बदल देगा
  3. ढूँढें / बदलें पर जाएँ और ### देखें। इसे स्पेस से बदलें।

यह अच्छा है यदि आप रेगेक्स को याद नहीं कर सकते हैं या इसे देखने की परवाह नहीं करते हैं। लेकिन दूसरों द्वारा उल्लेखित रेगेक्स एक अच्छा समाधान है।


सभी वर्णों को ज़ैप करने से सभी प्रकार के विराम चिह्नों को ### से बदल दिया जाता है। समाधान मैं उम्मीद करूँगा: "और" के साथ "और 'के साथ' की जगह '। आदि।
कासिम हुसैनी

यह ठीक काम करता है, हालांकि, टूल एक # चार और न कि तीन के साथ मजाकिया चार्ट की जगह लेता है। कृपया पूंजी ले।
राघव

1
पाठ FX प्लगइन को हटा दिया गया है और अब आसानी से उपलब्ध भी नहीं हो सकता है। उदाहरण के लिए TextFX के भविष्य को देखें - "जब सूची काफी लंबी हो जाती है, तो यह उम्र बढ़ने वाले
पीटर मोर्टेंसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.