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

Susan Sarandon
Lepaskan: 2024-10-24 08:20:30
asal
386 orang telah melayarinya

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];
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>#
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!