मुझे कुछ वर्णों के बीच में व्हाइटस्पेस को अनदेखा करने का प्रयास करने में समस्या आ रही है। मैं कुछ दिनों के लिए चारों ओर घूम रहा हूं और समाधान ढूंढ नहीं पाया।वैकल्पिक व्हाइटस्पेस रेगेक्स
यहाँ मेरी कोड है:
// Get Image data
preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch);
$image = $imagematch[4];
मूल रूप से इन परिदृश्यों में से कुछ हैं मेरे पास है:
<a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a>
(सूचना चौड़ाई के बीच एक स्थान की कमी = "" और src = "")
और
<a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a>
(चौड़ाई = "" और ऊंचाई = "" के बीच एक स्थान की कमी पर ध्यान दें।)
क्या उन पात्रों के बीच व्हाइटस्पेस को अनदेखा करने के लिए वैसे भी है? क्योंकि मैं कोई रेगेक्स विशेषज्ञ नहीं हूं।
धन्यवाद! मैंने [\ s *] को बदल दिया है? और यह अब काम करता है! :) धन्यवाद! – jameslfc19
@ jameslfc19 's? 'का अर्थ है 0 या 1 व्हाइटस्पेस वर्ण। हालांकि, अगर 1 से अधिक व्हाइटस्पेस वर्ण हैं तो क्या होगा? आप '\ s *' चाहते हैं तो यह 0 या ** अधिक ** से मेल खाएगा। बीटीडब्ल्यू आप एचटीएमएल पार्स करने के लिए regex का उपयोग नहीं करना चाहते हैं। आप इनमें से एक [इन] (http://stackoverflow.com/q/3577641/1592648) विधियों का उपयोग करना चाहते हैं। –