Regex (बिग | स्मॉल) (स्टेट | सिटी) के बराबर .gitignore पैटर्न क्या है - [0- 0-]] \ csv।


23

मेरे पास एक रेगीक्स है जो मैं अपने .gitignoreसमान में फंस गया:

(Big|Small)(State|City)-[0-9]*\.csv

यह काम नहीं किया इसलिए मैंने इसे RegexLab.NET के खिलाफ परीक्षण किया ।

फिर मुझे gitignore मैन पेज मिला जिसने मुझे यह जानने के लिए प्रेरित किया कि gitignore regexes का उपयोग नहीं करता है, बल्कि fnmatch (3)

हालांकि, fnmatch यह कब्जा समूहों के बराबर नहीं लगता है। क्या यह संभव है या मुझे इसे तीन लाइनों में तोड़ने की आवश्यकता है?

जवाबों:


26

Gitignore द्वारा समर्थित पैटर्न के साथ इस नियमित अभिव्यक्ति को व्यक्त करने का कोई तरीका नहीं है। समस्या कैप्चर समूहों की कमी नहीं है (वास्तव में, आप कैप्चर समूहों का उपयोग नहीं कर रहे हैं), समस्या एक |ऑपरेटर की कमी है । आपको इसे चार लाइनों में तोड़ने की आवश्यकता है।

BigState-[0-9]*.csv
SmallState-[0-9]*.csv
BigCity-[0-9]*.csv
SmallCity-[0-9]*.csv

ध्यान दें कि पैटर्न किसी भी क्रम BigState-4foo.csvसे *मेल खाने वाले उदाहरणों से मेल खाता है। आप ग्लोब पैटर्न के साथ इससे बेहतर नहीं कर सकते, जब तक कि आप केवल निश्चित अंकों की संख्या से मेल खाने के लिए तैयार न हों।


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