इस सवाल का पहले से ही एक उत्तर है: < / P>
- 23 उत्तर
मुझे केवल एक मैच चाहिए
दूध किसी भी या सभी 4 विशिष्ट शब्दों (सादगी के लिए इन शब्दों को एए, बी बी, सीसी, डीडी कहते हैं) से किसी भी समय पहले नहीं है।
तो
मैं दुकान पर गया और कुछ दूध खरीदा होगा, परन्तु निम्नलिखित नहीं होगा:
ए.ए. दुकान पर गया और कुछ दूध खरीद लिया या
BBCCDDmilk
एक और तरीका रखो, मैं इसके विपरीत प्रतिक्रिया कैसे प्राप्त करूं:
/.*? (एए | बीबी | सीसी | डीडी)। * दूध / < / P>
मुझे लगता है कि मुझे कहीं एक कैरेट करना चाहिए, लेकिन इसे समझने में सक्षम नहीं हैं। धन्यवाद।
विवरण
यह regex दिए गए पाठ में प्रत्येक पंक्ति को मान्य करेगा यह सुनिश्चित करने के लिए कि किसी एक पंक्ति पर स्ट्रिंग दूध से पहले स्ट्रिंग {एए, बीबी, सीसी, डीडी} नहीं है। मिलान लाइनें तो लौटा दी जाती हैं नोट: ओपी में दिए गए उदाहरणों में दिखाया गया है कि मिलान किए गए "शब्द" बस स्ट्रिंग हैं, और सफेद स्थान और शब्द सीमाएं कोई फर्क नहीं पड़ती हैं।
^ (?!। *? (?: एए | बीबी | सीसी | डीडी)। * दूध)। *
-
^ इस मैच को लाइन की शुरुआत में एंकर करें
(?! आगे नकारात्मक नज़र आना शुरू करें, अगर मेरी सामग्रियों को सफलतापूर्वक सफलता मिल जाए तो मैं असफल रहूंगा
। *? (?: एए | बीबी | सीसी | डीडी) <
स्ट्रिंग के लिए देखो
)
।
/ कोड> पूरे वाक्य से मेल खाता
<एच 1> पीएचपी कोड उदाहरण:
इनपुट पाठ
ए.ए. दुकान में गया और मैं दूध के कुछ दूध BBCCDDilk खरीदा
कोड
& lt;? Php $ sourcestring = "अपने स्रोत स्ट्रिंग"; preg_match_all ( '/ ^ (* (?: ए.ए. | बी बी | सीसी | डीडी) * दूध) * / im?!।?।?।', $ sourcestring, $ से मेल खाता है); गूंज "& lt; पूर्व & gt;" print_r ($ मिलान, सत्य); ? & Gt;
मेल खाता
$ matches Array: ([0] = & gt; अरे ([0] = & gt; मैं गया स्टोर करने के लिए और कुछ दूध खरीदा))
-
No comments:
Post a Comment