2013-02-19 23 views
17

मैं (एक फ़ाइल से) एक स्ट्रिंग है:php preg_match गैर लालची?

ILX (New for 2013!) 

Overview: The least expensive route to Honda's premium-label goodness 

Drivetrain: Two four-cylinder engines to choose from as well as a gas-electric hybrid; front-wheel-drive only. 

मैं स्ट्रिंग कैसे प्राप्त:।

$writeup = file_get_contents($car_files_path . $manufacture . '/Stories/'.$story); 

मैं सिंहावलोकन लाइन (Overview: The least expensive route to Honda's premium-label goodness) मिलान करना चाहते हैं क्या सबसे अच्छा तरीका है इस लक्ष्य को हासिल करने के लिए है ।

मैंने कोशिश की। * \ n, लेकिन है कि सब कुछ से मेल खाते हैं और फिर एक नई लाइन। वहाँ regex गैर लालची बनाने के लिए एक तरीका है?

मैं हा मैंने कोशिश की: preg_match('/^Overview:\s.*$/im', $writeup, $overall_matches) और मुझे कोई मिलान नहीं मिला

+3

गैर लालची '। *?' Http://www.regular-expressions.info/repeat.html –

+0

मैं आप जो मिलान करने की कोशिश कर रहा हूं उसके बारे में थोड़ा उलझन में हूं .. बस पूरी लाइन इसमें 'अवलोकन' शब्द, नई लाइन? आपका असली रेगेक्स क्या है? –

+0

मैं अवलोकन के साथ पूरी लाइन से मिलान करने की कोशिश कर रहा हूं: –

उत्तर

30

क्वालिफायर को इसे अप्रासंगिक बनाने के बाद ? जोड़ें। इस मामले में, आपका regex .*?\n होगा। इस regex, का उपयोग करें:

विशेष रूप से लाइन के साथ शुरुआत के स्तर के अनुसार "सारांश":

/^Overview:\s.*$/im 

m संशोधक ^ और $ शुरू और पूरे खोज स्ट्रिंग के बजाय लाइनों के अंत मैच के लिए अनुमति देता है। ध्यान दें कि . के बाद से इसे अप्रासंगिक बनाने की कोई आवश्यकता नहीं है जब तक कि आप s संशोधक का उपयोग नहीं करते हैं - वास्तव में, इसे अप्रासंगिक बनाकर यहां प्रदर्शन के लिए बुरा होगा।

+0

मैं स्ट्रिंग का हिस्सा शामिल करना भूल गया। कृपया अद्यतन –

+0

देखें यह अभी भी ठीक काम करना चाहिए। –

+0

मुझे अभी भी कोई मिलान नहीं मिल रहा है। –