Rumah pembangunan bahagian belakang tutorial php 解析正则表达式中最短匹配模式

解析正则表达式中最短匹配模式

Sep 21, 2017 am 11:52 AM
perlawanan ungkapan

最短匹配应用于:假如有一段文本,你只想匹配最短的可能,而不是最长。下面这篇文章主要给大家介绍了关于正则表达式中最短匹配模式用法的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

最近有一次想用正则表达式从网页里面抓取一些东西出来,内容不复杂却出现不少问题。下面话不多说,来一起看看详细的介绍:

当我们用正则表达式去匹配一个标签的首尾的时候,比如匹配 <h1>hello world</h1> 中的 h1 的开始和闭合标签

可能很多人会这样写


/<.*h1>/g
Salin selepas log masuk

但是这样真的可以吗?

因为 * 匹配符是匹配前面一个字符的零到多个,而且它是贪婪匹配的

所以你得到的就会是下面的结果了。


显然这并不是我们想要的,那么怎么把贪婪匹配换成最小匹配呢,


/<.*?h1>/g
Salin selepas log masuk

上面的写法就可以了,如下图:


其实原理应该很简单,因为 ? 也是贪婪匹配,并且只能匹配0到1个,

所以它会匹配到第一个的时候就结束了,从而阻止了 * 的匹配多个的贪婪。

Atas ialah kandungan terperinci 解析正则表达式中最短匹配模式. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Praktikal untuk Ungkapan Biasa dalam Go: Cara Memadankan Kod Warna Heksadesimal Panduan Praktikal untuk Ungkapan Biasa dalam Go: Cara Memadankan Kod Warna Heksadesimal Jul 13, 2023 am 10:46 AM

Go Language Panduan Praktikal Ungkapan Biasa: Cara Memadankan Kod Warna Heksadesimal Pengenalan: Ungkapan biasa ialah alat yang berkuasa dan fleksibel untuk padanan corak dan mencari rentetan. Dalam bahasa Go, kita boleh menggunakan pakej ekspresi biasa terbina dalam regexp untuk melaksanakan operasi ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa untuk memadankan kod warna heksadesimal dalam bahasa Go. Mengimport pakej ungkapan biasa Pertama, kita perlu mengimport pakej ekspresi biasa regexp bahasa Go. Anda boleh menambah pernyataan import berikut pada permulaan kod: i

Ungkapan biasa PHP dalam tindakan: memadankan huruf dan nombor Ungkapan biasa PHP dalam tindakan: memadankan huruf dan nombor Jun 22, 2023 pm 04:49 PM

Amalan ungkapan biasa PHP: memadankan huruf dan nombor Ungkapan biasa ialah alat yang digunakan untuk memadankan rentetan, yang boleh melaksanakan carian rentetan, penggantian, pemisahan dan operasi lain dengan mudah. Ekspresi biasa juga merupakan alat yang sangat berguna dalam pembangunan PHP. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan huruf dan nombor. Memadankan Aksara Tunggal Untuk memadankan aksara tunggal, anda boleh menggunakan kelas aksara dalam ungkapan biasa. Kelas aksara diwakili oleh kurungan segi empat sama []. Aksara di dalamnya mewakili aksara yang boleh dipadankan Anda boleh menggunakan tanda sempang - untuk mewakili julat.

Ungkapan biasa PHP: padanan tepat dan pengecualian kemasukan kabur Ungkapan biasa PHP: padanan tepat dan pengecualian kemasukan kabur Feb 28, 2024 pm 01:03 PM

Ungkapan Biasa PHP: Padanan Tepat dan Pengecualian Ungkapan tetap kemasukan kabur ialah alat padanan teks yang berkuasa yang boleh membantu pengaturcara melakukan carian, penggantian dan penapisan yang cekap semasa memproses teks. Dalam PHP, ungkapan biasa juga digunakan secara meluas dalam pemprosesan rentetan dan pemadanan data. Artikel ini akan menumpukan pada cara melakukan pemadanan tepat dan mengecualikan operasi kemasukan kabur dalam PHP dan akan menggambarkannya dengan contoh kod khusus. Padanan tepat Padanan tepat bermaksud padanan hanya rentetan yang memenuhi syarat yang tepat, bukan sebarang variasi atau perkataan tambahan.

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Feb 29, 2024 am 08:06 AM

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Dalam pembangunan PHP, pemadanan rentetan ialah tugas biasa, biasanya digunakan untuk mencari kandungan teks tertentu atau untuk mengesahkan format input. Walau bagaimanapun, kadangkala kita perlu mengelak daripada menggunakan ungkapan kemasukan yang tidak jelas untuk memastikan ketepatan padanan. Artikel ini akan memperkenalkan beberapa teknik untuk mengelakkan ungkapan kemasukan yang samar-samar semasa melakukan pemadanan rentetan dalam PHP dan memberikan contoh kod khusus. Gunakan fungsi preg_match() untuk padanan tepat Dalam PHP, anda boleh menggunakan preg_mat

Bagaimana untuk memadankan dalam Jedi Submarine 2 Bagaimana untuk memadankan dalam Jedi Submarine 2 Feb 27, 2024 pm 08:43 PM

Jedi Submarine 2 ialah permainan menembak orang ketiga dengan permainan hebat yang berkualiti tinggi. Ia mempunyai banyak permainan menarik yang membolehkan rakan meneroka keseronokan operasi pertempuran menembak dalam talian. Beberapa pemain I masih tidak tahu bagaimana untuk mengendalikan pemadanan. Dalam keluaran ini, saya akan berkongsi dengan anda langkah-langkah padanan tutorial operasi Jedi Submarine 2. Jawapan: Klik Padanan Pantas pada antara muka planet. Kaedah pemadanan Jedi Submarine 2. Pemadanan pantas Jedi Submarine 2 ialah fungsi yang sangat baik Ia boleh membantu pemain mencari rakan sepasukan untuk dipadankan bersama, memasuki misi bersama-sama dan bekerjasama antara satu sama lain untuk mendapatkan penilaian misi yang lebih tinggi. Pilihan padanan adalah pada antara muka planet Apabila mencari tugas atau melihat bilik awam, akan ada padanan pantas di bawah. Jika pemain menghidupkan meratakan silang

Ungkapan Biasa PHP: Bagaimana untuk memadankan semua teg textarea dalam HTML Ungkapan Biasa PHP: Bagaimana untuk memadankan semua teg textarea dalam HTML Jun 22, 2023 pm 09:27 PM

HTML ialah bahasa penanda halaman yang biasa digunakan untuk memaparkan kandungan pada halaman web. Dalam HTML, tag textarea digunakan untuk membuat kotak teks yang membolehkan pengguna memasukkan atau mengedit teks. Apabila anda perlu mengekstrak semua teg textarea dan kandungannya daripada halaman, ungkapan biasa PHP boleh memberikan penyelesaian yang mudah dan berkesan. Dalam artikel ini, kita akan belajar cara memadankan semua teg textarea dalam HTML menggunakan ungkapan biasa PHP. Fahami jadual biasa

Bagaimana untuk menyelesaikan ralat sintaks ungkapan Python? Bagaimana untuk menyelesaikan ralat sintaks ungkapan Python? Jun 24, 2023 pm 05:04 PM

Python, sebagai bahasa pengaturcaraan peringkat tinggi, mudah dipelajari dan digunakan. Sebaik sahaja anda perlu menulis program Python, anda pasti akan menghadapi ralat sintaks, dan ralat sintaks ungkapan adalah perkara biasa. Dalam artikel ini, kita akan membincangkan cara menyelesaikan ralat sintaks ungkapan dalam Python. Ralat sintaks ungkapan adalah salah satu ralat yang paling biasa dalam Python, dan ia biasanya disebabkan oleh penggunaan sintaks yang salah atau kehilangan komponen yang diperlukan. Dalam Python, ungkapan biasanya terdiri daripada nombor, rentetan, pembolehubah dan pengendali. paling biasa

Taip ketidakpadanan dalam Java - java.lang.ClassCastException Taip ketidakpadanan dalam Java - java.lang.ClassCastException Jun 24, 2023 pm 09:30 PM

Sebagai bahasa yang ditaip dengan kuat, Java memerlukan jenis pembolehubah mesti ditentukan dengan jelas pada masa penyusunan, yang memastikan keselamatan program pada tahap tertentu. Tetapi kadangkala, pada masa jalan, kita mungkin menghadapi pengecualian penukaran jenis - java.lang.ClassCastException Pengecualian ini akan muncul dalam program Java Apabila program cuba menukar objek kepada jenis yang tidak serasi, Pengecualian ini akan dibuang. Java.lang.ClassCastExcepti

See all articles