国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah pembangunan bahagian belakang tutorial php 正則表達(dá)式之零寬斷言實例詳解

正則表達(dá)式之零寬斷言實例詳解

Jun 16, 2017 am 11:25 AM
biasa ungkapan biasa

這篇文章主要介紹了正則表達(dá)式之零寬斷言,簡單介紹了零寬斷言的概念、分類及php實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了正則表達(dá)式之零寬斷言。分享給大家供大家參考,具體如下:

前言

之前我曾寫了一篇關(guān)于正則表達(dá)式的文章(http://www.jb51.net/article/111359.htm) 在該文章中詳細(xì)介紹了正則,但是關(guān)于零寬斷言介紹卻是很少提及到。現(xiàn)在將該內(nèi)容補充一下。在本文中,主要解決如下問題:

① 什么是零寬斷言,為什么要使用零寬斷言
② 怎樣使用零寬斷言

概念

零寬斷言,大多地方這樣定義它,用于查找在某些內(nèi)容(但并不包括這些內(nèi)容)之前或之后的東西,也就是說它們像 \b ^ $ \< > 這樣的錨定作用,用于指定一個位置,這個位置應(yīng)該滿足一定的條件(即斷言),因此它們也被稱為零寬斷言。我的理解是在一個限定位置的字符串之前或之后進行匹配查找。所以零寬斷言,執(zhí)行過程分兩種情況,如果是正向斷言,應(yīng)該是這樣的,第一步,判斷判斷斷言是否為真(即是否滿足一定條件)第二步,如果滿足條件,則進行下一步查找匹配。如果是反向斷言,第一步還是按照正則表達(dá)式順序去匹配。第二步,遇到反向代言,判斷是否滿足反之代言。

正先行斷言

什么是正先行斷言,就是在字符串相應(yīng)位置之前進行查找匹配,使用 (?=exp) 匹配exp前面的位置。

實例

$str="abcgwcab";
$parent=&#39;/bc(?=gw)/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($match);
/**
輸出結(jié)果:
int 1
array (size=1) 
  0 => string &#39;bc&#39; (length=2)
  */

解析:首先查找字符串”abcgwcab”中g(shù)w位置,斷言為真,然后在匹配bc。如果將正則表達(dá)式寫成$parent='/bc(?=gw)ca/'; 將會匹配不成功。

反先行斷言

什么是反先行斷言,使用 (?!exp) 匹配后面跟的不是exp。

實例:

$str="abcgwcab";
$parent=&#39;/bc(?!ww)gw/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
輸出:
int 1
array (size=1)
 0 => string &#39;bcgw&#39; (length=4)
*/

解析:首先判斷字符串是否包含bc,然后判斷其后面不是ww,最后匹配gw。可以看出反向斷言之前后之后,能夠在添加其他匹配條件。

正后發(fā)斷言

什么是正后發(fā)斷言,就是在字符串相應(yīng)位置之后進行查找匹配, (?<=exp) 匹配exp后面的位置

實例:

$str="abcgwcab";
$parent=&#39;/(?<=gw)ca/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
輸出結(jié)果:
int 1
array (size=1)
 0 => string &#39;ca&#39; (length=2)
*/

解析:第一步,查找字符”abcgwcab”中是否包含有g(shù)w,返回結(jié)果為true,然后進行第二步,查找gw后面是否有ca。

反后發(fā)斷言

什么是反后發(fā)斷言,使用(?

$str="abcgwcab";
$parent=&#39;/(?<!bc)gw/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
int 0
array (size=0)
 empty
*/

解析:首先在字符串中匹配gw,然后判斷其前面是不是bc,發(fā)現(xiàn)其前面是bc,故返回false。

練習(xí)題

例1:\d+(?=abc)
判斷一個字符串中是否包含'abc',且其前面是否包含一個或多個數(shù)字

例2:(?<=\d\d)\w
判斷字符串中是否存在連續(xù)兩個數(shù)字,且其后面包含一個字母

例3:\d{3} (?!55)
判斷字符串中是否包含連續(xù)三個數(shù)字,且三個數(shù)字后面不是55

例4:(?<!ac)\w\d
判斷一個字符串是否包含一個字母加數(shù)字的組合,且其前面不是ac

總結(jié)

先行斷言與后發(fā)斷言區(qū)別?

先行斷言是判斷斷言之前的正則表達(dá)式,斷言在其他正則表達(dá)式之后。后發(fā)斷言是判斷斷言之前的正則表達(dá)式,斷言在其他正則表達(dá)式之前。這里的先與后,是其他匹配相對應(yīng)斷言在正則表達(dá)式中的順序。

Atas ialah kandungan terperinci 正則表達(dá)式之零寬斷言實例詳解. 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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Topik panas

Tutorial PHP
1502
276
Pengesahan ungkapan biasa PHP: pengesanan format nombor Pengesahan ungkapan biasa PHP: pengesanan format nombor Mar 21, 2024 am 09:45 AM

Pengesahan ungkapan biasa PHP: Pengesanan format nombor Semasa menulis program PHP, selalunya perlu untuk mengesahkan data yang dimasukkan oleh pengguna Salah satu pengesahan biasa adalah untuk memeriksa sama ada data mematuhi format nombor yang ditentukan. Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mencapai pengesahan jenis ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan format nombor dan memberikan contoh kod khusus. Mula-mula, mari kita lihat keperluan pengesahan format nombor biasa: Integer: hanya mengandungi nombor 0-9, boleh bermula dengan tanda tambah atau tolak dan tidak mengandungi titik perpuluhan. titik terapung

Bagaimana untuk memadankan cap masa menggunakan ungkapan biasa dalam Go? Bagaimana untuk memadankan cap masa menggunakan ungkapan biasa dalam Go? Jun 02, 2024 am 09:00 AM

Dalam Go, anda boleh menggunakan ungkapan biasa untuk memadankan cap masa: susun rentetan ungkapan biasa, seperti yang digunakan untuk memadankan cap masa ISO8601: ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Gunakan fungsi regexp.MatchString untuk menyemak sama ada rentetan sepadan dengan ungkapan biasa.

Bagaimana untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa? Bagaimana untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa? May 31, 2024 pm 01:04 PM

Untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa, ikut langkah berikut: Gunakan regexp.MustCompile untuk mencipta corak ungkapan biasa yang sepadan dengan format alamat e-mel yang sah. Gunakan fungsi MatchString untuk menyemak sama ada rentetan sepadan dengan corak. Corak ini merangkumi kebanyakan format alamat e-mel yang sah, termasuk: Nama pengguna tempatan boleh mengandungi huruf, nombor dan aksara khas: !.#$%&'*+/=?^_{|}~-`Nama domain mesti mengandungi sekurang-kurangnya Satu huruf, diikuti dengan huruf, nombor atau sempang Domain peringkat teratas (TLD) tidak boleh lebih daripada 63 aksara.

Bagaimana untuk memadankan berbilang perkataan atau rentetan menggunakan ungkapan biasa Golang? Bagaimana untuk memadankan berbilang perkataan atau rentetan menggunakan ungkapan biasa Golang? May 31, 2024 am 10:32 AM

Ungkapan biasa Golang menggunakan aksara paip | untuk memadankan berbilang perkataan atau rentetan, memisahkan setiap pilihan sebagai ungkapan OR logik. Contohnya: padanan "musang" atau "anjing": musang|padanan anjing "cepat", "coklat" atau "malas": (cepat|coklat|malas) sepadan dengan "Pergi", "Python" atau "Java": Pergi| Python |Java memadankan perkataan atau kod zip 4 digit: ([a-zA

Bagaimana untuk mengesahkan kata laluan menggunakan ungkapan biasa dalam Go? Bagaimana untuk mengesahkan kata laluan menggunakan ungkapan biasa dalam Go? Jun 02, 2024 pm 07:31 PM

Kaedah menggunakan ungkapan biasa untuk mengesahkan kata laluan dalam Go adalah seperti berikut: Tentukan corak ungkapan biasa yang memenuhi keperluan kata laluan minimum: sekurang-kurangnya 8 aksara, termasuk huruf kecil, huruf besar, nombor dan aksara khas. Susun corak ungkapan biasa menggunakan fungsi MustCompile daripada pakej regexp. Gunakan kaedah MatchString untuk menguji sama ada rentetan input sepadan dengan corak ungkapan biasa.

Penapisan aksara Cina: Amalan ungkapan biasa PHP Penapisan aksara Cina: Amalan ungkapan biasa PHP Mar 24, 2024 pm 04:48 PM

PHP adalah bahasa pengaturcaraan yang digunakan secara meluas, terutamanya popular dalam bidang pembangunan web. Dalam proses pembangunan web, kami sering menghadapi keperluan untuk menapis dan mengesahkan input teks oleh pengguna, antaranya penapisan aksara adalah operasi yang sangat penting. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa dalam PHP untuk melaksanakan penapisan aksara Cina dan memberikan contoh kod khusus. Pertama sekali, kita perlu menjelaskan bahawa julat Unicode aksara Cina adalah dari u4e00 hingga u9fa5, iaitu, semua aksara Cina berada dalam julat ini.

Panduan penggunaan ungkapan biasa Golang Panduan penggunaan ungkapan biasa Golang Apr 08, 2024 pm 02:15 PM

Ungkapan biasa dalam Go menyediakan alat pemprosesan rentetan yang berkuasa: gunakan pakej regexp untuk operasi ungkapan biasa. Gunakan sintaks ungkapan biasa untuk memadankan dan memanipulasi rentetan. Memadankan kelas aksara, aksara berulang, kumpulan, sauh dan sempadan. Padankan rentetan dengan MatchString, ekstrak padanan dengan FindStringSubmatch dan gantikan rentetan dengan ReplaceAllString. Senario aplikasi termasuk mengesahkan alamat e-mel, mengekstrak pautan HTML, dsb.

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.

See all articles