Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan Ruang Putih Pilihan dalam Ungkapan Biasa untuk Pengekstrakan Data Tepat?

Bagaimana Mengendalikan Ruang Putih Pilihan dalam Ungkapan Biasa untuk Pengekstrakan Data Tepat?

Susan Sarandon
Susan Sarandonasal
2024-10-24 08:20:30387semak imbas

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

Regex Ruang Putih Pilihan: Mengabaikan Ruang dalam Nilai Atribut

Dalam pengaturcaraan, terdapat senario di mana anda perlu mengendalikan keadaan di mana rentetan mengandungi ruang putih pilihan . Ini mungkin mencabar apabila menulis ungkapan biasa untuk mengekstrak data dengan tepat.

Pertimbangkan kod berikut:

# 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];

Kod ini mengekstrak atribut src imej daripada penanda HTML. Walau bagaimanapun, ia gagal mengendalikan kes di mana tiada ruang kosong antara atribut tertentu, seperti:

<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>

atau

<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>

Untuk menangani isu ini, kami boleh menggunakan regex ruang kosong pilihan. Ini membolehkan kita mengabaikan ruang di antara aksara. Begini caranya:

#<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>#

Dalam ungkapan biasa yang dikemas kini ini:

  • s? before = bermaksud ruang dibenarkan tetapi pilihan.
  • s* selepas nilai atribut membenarkan ruang pilihan selepas nama dan nilai atribut.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Ruang Putih Pilihan dalam Ungkapan Biasa untuk Pengekstrakan Data Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn