可選空格正規表示式:忽略屬性值中的空格
在程式設計中,有時需要處理字串包含可選空格的實例。在編寫正規表示式來準確提取資料時,這可能具有挑戰性。
請考慮以下程式碼:
# Get Image data preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch); $image = $imagematch[4];
此程式碼從 HTML 標籤擷取圖片的 src 屬性。但是,它無法處理某些屬性之間沒有空格的情況,例如:
<code class="html"><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></code>
或
<code class="html"><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></code>
要解決此問題,我們可以使用可選的空格正則表達式。這允許我們忽略字元之間的空格。具體方法如下:
#<a href\s?="(.*?)" title\s?="(.*?)"><img alt\s?="(.*?)" src\s?="(.*?)"[\s*]width\s?="150"[\s*]height\s?="(.*?)"></a>#
在此更新的正規表示式中:
以上是如何處理正規表示式中的可選空格以準確提取資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!