आपने दूसरे के अनुपस्थिति में "foo" और "bar" या दो की पुनरावृत्ति के अलावा अन्य सामग्री के संबंध में व्यवहार निर्दिष्ट नहीं किया है। उदाहरण के लिए, "foo डी" या "बारबार ian" मैच होना चाहिए?
मान लीजिए कि आप स्ट्रिंग्स से मिलान करना चाहते हैं जिसमें "foo" या "bar" का केवल एक उदाहरण शामिल है, लेकिन स्ट्रिंग में किसी और चीज़ के संबंध में, दोनों के एक से अधिक उदाहरण नहीं हैं, यानी " भोजन "मैचों और" बर्बर "मेल नहीं खाते हैं), तो आप एक रेगेक्स का उपयोग कर सकते हैं जो मिले मैचों की संख्या देता है और केवल एक मैच मिलने पर ही इसे सफल मानता है। जैसे, पर्ल में:
@matches = ($value =~ /(foo|bar)/g) # @matches now hold all foos or bars present
if (scalar @matches == 1) { # exactly one match found
...
}
है कि एक ही लक्ष्य के कई repetitions अनुमति दी जाती है (यानी, "जंगली" से मेल खाता है), तो यह एक ही सामान्य दृष्टिकोण तो मैचों की सूची चलने से इस्तेमाल किया जा सकता मैचों को देखने के लिए कि क्या सभी एक ही पाठ की दोहराव हैं या यदि दूसरा विकल्प भी मौजूद है।
स्रोत
2008-10-29 16:59:24
कोई मिलान हो Foofoobar चाहेंगे क्योंकि यह शामिल है " foo "और" foobar "? "फूनबार" के बारे में कैसे?क्या आप मैचों और गैर-मैचों के उदाहरण प्रदान कर सकते हैं? –
से मेल खाता है: "foo" "बार" nonmatches: "foofoo" "barfoo" "foobarfoo" "barbar" "barfoofoo" – SocialCensus
आप "foofoo" मैच के लिए नहीं करना चाहते हैं, तो आप ' वास्तव में एक विशेष या के बारे में बात नहीं कर रहे हैं। – cjm