मुझे रुबी रेगेक्स के साथ समस्याएं आ रही हैं।रूबी रेगेक्स का उपयोग कैसे करें और
आप कैसे करते हैं और() रूबी में regex?
पूर्व:
cat and dog
cat
dog
I just want to match "cat and dog"
मुझे रुबी रेगेक्स के साथ समस्याएं आ रही हैं।रूबी रेगेक्स का उपयोग कैसे करें और
आप कैसे करते हैं और() रूबी में regex?
पूर्व:
cat and dog
cat
dog
I just want to match "cat and dog"
आप एक तरह कुछ करते हैं और सकारात्मक नज़र Aheads
का उपयोग कर सकते हैं(?=.*cat)(?=.*dog).*
देखें कि यह here on Rubularअपडेट किया गया लिंक!
यह सकारात्मक लुकहेड (?=.*cat)
स्ट्रिंग के भीतर कहीं "बिल्ली" है या नहीं, तो (?=.*dog)
का उपयोग करके "कुत्ते" के लिए भी किया जाता है। यदि वे दोनों दावे सत्य हैं तो पूर्ण स्ट्रिंग को अंत में .*
से मिलान किया जाता है।
लाभ यह है कि यह भी
कुत्ते और बिल्ली की भरपाई कर देंगे
और न केवल
बिल्ली और कुत्ते
लेकिन यह भी से मेल खाएगी है
कुत्तों और बिल्लियों
यदि आप सटीक मिलान चाहते हैं, तो का उपयोग इस
(?=.*\bcat\b)(?=.*\bdog\b).*
\b
एक शब्द सीमा है, यानी यह एक शब्द और एक गैर शब्द चरित्र के बीच से मेल खाता है।
देखें कि यह here
और एक regexp में डिफ़ॉल्ट क्रिया है, यानी पहले मैच इस फिर उस के बाद और इतने पर है।
बिल्ली और कुत्ते के मैच के लिए, की तरह
cat.*dog
जिसका अर्थ है, मैच "बिल्ली" कुछ भी द्वारा पीछा किया और फिर "कुत्ता" के बाद कुछ का उपयोग करें। लेकिन फिर मैंने आपके प्रश्न को गलत समझा होगा ...
यह आपके इच्छित चीजों पर निर्भर करता है।
आप वाइल्ड कार्ड
cat.+dog
या
cat.+dog|dog.+cat
या
cat +and +dog
आपका प्रश्न बहुत स्पष्ट नहीं है का उपयोग कर सकते हैं।
आप (शायद एक शब्द के कुछ हिस्से) केवल उन्हीं श्रृंखलाएं जिनमें दोनों "बिल्ली" और "कुत्ता" शामिल मिलान करना चाहते हैं, तो आप कर सकता है:
/^.*(cat.*dog|dog.*cat).*$/
ऊपर regex होगा "concatenation dogma" मैच, लेकिन "concatenation" नहीं।
आप यह सुनिश्चित करना है कि "बिल्ली" और "कुत्ता" खुद से शब्दों के रूप में दिखाई देते हैं चाहते हैं, करते हैं:
/^.*(\bcat\b.*\bdog\b|\bdog\b.*\bcat\b).*$/
ऊपर रेगुलर एक्सप्रेशन से मेल होगा "बिल्ली और कुत्ते", लेकिन "संयोजन हठधर्मिता" या "बिल्ली dogma"।
स्रोत: http://ruby-doc.org/docs/ProgrammingRuby/html/intro.html#S5
Regexp
रों में कोई and
ऑपरेटर नहीं है, क्योंकि यह मतलब नहीं है। यह होगा कभी नहीं मैच: कैसे एक String
दोनों 'cat'
और'dog'
एक ही समय में हो सकता है?
'schrodinger.pet.species.to_s' –
बेशक एक स्ट्रिंग एक ही समय में" बिल्ली "और" कुत्ता "दोनों हो सकती है -" एक बिल्ली और कुत्ता एक ही स्ट्रिंग में हैं "। – jeffdill2