如何處理正規表示式中的可選空格以準確提取資料?

Susan Sarandon
發布: 2024-10-24 08:20:30
原創
386 人瀏覽過

How to Handle Optional Whitespace in Regular Expressions for Accurate Data Extraction?

可選空格正規表示式:忽略屬性值中的空格

在程式設計中,有時需要處理字串包含可選空格的實例。在編寫正規表示式來準確提取資料時,這可能具有挑戰性。

請考慮以下程式碼:

# Get Image data
preg_match('#<a href=&quot;(.*?)&quot; title=&quot;(.*?)&quot;><img alt=&quot;(.*?)&quot; src=&quot;(.*?)&quot;[\s*]width=&quot;150&quot;[\s*]height=&quot;(.*?)&quot;></a>#', $data, $imagematch);
$image = $imagematch[4];
登入後複製

此程式碼從 HTML 標籤擷取圖片的 src 屬性。但是,它無法處理某些屬性之間沒有空格的情況,例如:

<code class="html"><a href=&quot;/wiki/File:Sky1.png&quot; title=&quot;File:Sky1.png&quot;><img alt=&quot;Sky1.png&quot; src=&quot;http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png&quot;width=&quot;150&quot; height=&quot;84&quot;></a></code>
登入後複製

<code class="html"><a href=&quot;/wiki/File:TallGrass.gif&quot; title=&quot;File:TallGrass.gif&quot;><img alt=&quot;TallGrass.gif&quot; src=&quot;http://media-mcw.cursecdn.com/3/34/TallGrass.gif&quot; width=&quot;150&quot;height=&quot;150&quot;></a></code>
登入後複製

要解決此問題,我們可以使用可選的空格正則表達式。這允許我們忽略字元之間的空格。具體方法如下:

#<a href\s?=&quot;(.*?)&quot; title\s?=&quot;(.*?)"><img alt\s?=&quot;(.*?)&quot; src\s?=&quot;(.*?)&quot;[\s*]width\s?=&quot;150&quot;[\s*]height\s?=&quot;(.*?)"></a>#
登入後複製

在此更新的正規表示式中:

  • s? before = 表示允許有空格,但可選。
  • s* 在屬性值之後允許在屬性名稱和值後面有可選空格。

以上是如何處理正規表示式中的可選空格以準確提取資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!