कैसे (केवल / कम से कम) 3 अल्पविराम वाली लाइनों का चयन करें?


1

मेरे पास एक टेक्स्ट डॉक्यूमेंट है जिसमें 2 कॉमा के साथ कुछ लाइनें और 3 कॉमा के साथ कुछ लाइनें हैं।

मैं 3 कॉमा के साथ सभी लाइनों का चयन करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?

यहाँ एक उदाहरण दस्तावेज़ है:

basb,asbdausd,asduasbd
sdauabs,asbudasud,busadasbu,asduasub
asdbua,asbudsdbu,ubasdub

जवाबों:


3

मुझे लगता है कि यह दूसरे उत्तर की तुलना में बेहतर काम करता है, क्योंकि 4 कॉमा के साथ एक मेल खाता है।

बेशक यह किसी भी चरित्र के साथ काम करता है, बस अल्पविराम की जगह ...

यदि आप प्रति पंक्ति 3 कॉमा से कम या अधिक मेल नहीं खाना चाहते हैं, तो मैंने इस पैटर्न का उपयोग किया है:

^[^,\n]*((,[^,\n]*){3}$)

इस पैटर्न के प्रत्येक भाग का स्पष्टीकरण इस प्रकार है (क्योंकि नियमित अभिव्यक्ति मेरे लिए स्पष्ट नहीं हैं :-)):

^

रेग अभिव्यक्ति की शुरुआत में, लाइन की शुरुआत से मतलब है

[^,\n]*

किसी भी ऐसे वर्ण से मेल खाता है जो नई रेखा या अल्पविराम नहीं है

(,[^,\n]*)

यह शून्य या अधिक वर्णों के बाद एकल कॉमा से मेल खाता है जो कॉमा या न्यूलाइन नहीं हैं

{3}$

इसका मतलब लाइन के अंत से पहले तीन बार पिछले पैटर्न को खोजना है

((,[^,\n]*){3}$)

इस हिस्से के चारों ओर कोष्ठक लगाना सुनिश्चित करें ताकि यह स्पष्ट हो सके कि तीन बार दोहराएं (बहुत पहले शून्य या अधिक वर्ण जो अल्पविराम या नई रेखा नहीं हैं)

बहुत अच्छी तरह से एक सरल तरीका हो सकता है - लेकिन मैं परीक्षण कर रहा हूं और मुझे पूरा यकीन है कि यह नोटपैड ++ के वर्तमान संस्करण में पूरी तरह से अच्छी तरह से काम करता है।


1

उपयोग नोटपैड ++ नियमित अभिव्यक्ति खोज।

उदाहरण के लिए, यहां एक RegEx है जो कम से कम 3 कॉमा के साथ लाइनों से मेल खाएगा:

.*,.*,.*,

जिसका मूल अर्थ है "किसी भी संख्या में वर्णों के बाद अल्पविराम, उसके बाद किसी वर्ण की संख्या और उसके बाद किसी वर्ण की संख्या, उसके बाद किसी वर्ण की संख्या"।

enter image description here

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