php正則表達式誰能幫我我解釋,php正則表達式匹配中文

本文目錄一覽:

哪位高手能告訴我,php 正則表達式可以用一種什麼樣比喻來解釋其作用呢?

首先,正則是獨立於各門語言之外的一種用於分析處理文本技術。由於很有用,各大流行語言都有支持正則表達式的函數或者庫,php也支持,而且個人感覺php對正則的支持做得很好。關於正則,可以看看

這個比較全面的解釋。

如果用口水話解釋,php中的正則就是一種用於查找匹配(衍生出替換)文本的工具,可以幫助你方便地找到一類帶某特性的文本並進行處理。就是根據你所寫的正則,去得到符合某種特性的文本。

假設你要在一篇文章中找“xyz的作用:mmmm”,xyz是一串英文字符串,可能是java,可能是php等,而mmmm是內容,完全未知是什麼。這時你用正則“[a-zA-Z]+的作用:(\S+)”就能找出這一類“(英文字符串) 後面接 (的作用:) 後面接 (一段描述)”的文本,得到這種你所需要的對某語言作用的(一段描述)文字。

什麼是PHP的正則表達式

也就是所謂的補集——在左邊的括號和第一個字符之間使用^字符,例如正則表達式[^269A-Z] 將匹配除了2、6、9和所有大寫字母之外的任何字符。

你的也就是匹配除了之外的任何字符。

詳解PHP正則表達式:什麼是正則表達式

正則表達式,又稱規則表達式,英文名為Regular Expression,在代碼中常簡寫為regex、regexp或RE,是計算機科學的一個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文本。

正則表達式是對字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”))操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。正則表達式是一種文本模式,模式描述在搜索文本時要匹配的一個或多個字符串。

php正則式求解解釋!

我們來一條條的分析,正則這樣分析最容易了:

先來看前面的無名表達式中間的  [\d]+  相信這個有點正則經驗的都知道,它是表示連續至少一個數字的字符串;

再看它外面一圈: \(([\d]+)\)  這個是表示帶了括號的至少一個數字的字符串,比如:”(554)”就符合它的要求;

再來看它再外面的一圈  (?:表達式) 這樣的語法,這個我們稱之為無名表達式,它可以佔一個括號,卻不會被子匹配所捕獲;也就是說,它裡面的值在 \1\2或者是$1$2中不會因為用了括號而出現,但它裡面的括號還是會被子匹配的。但要注意的是,冒號的前面有一個空格,這個空格也是要求被匹配的,也就是說,在包含了數字的括號前面,要有一個空格,這個數字和括號才會被匹配;

再外面的,又出現了一個無名表達式,這個浪費了,沒用。

(?:(?: \(([\d]+)\))?  最後面的   ?   ,這個表示這個無名表達式中的內容可有可無,有的話只限一次,要麼就沒有。

再看後面  [^.]+  這個表達式,它的寫法很有意思,我們都知道在正則中 .  這個符號是不匹配換行的,其它的統統拿下,所以,這麼用就表達匹配換行符,後面的 + 表示至少一個,上不封頂。那麼,它表示匹配出現一次或者多次的換行,這個還可以用  [\r\n]+  來代替;

再看它外圍,(\.[^.]+)?  這個表達式表示,以換行結尾,換行前面有一個點,“.”的前面加上“\”表示這個符號本身,也就是點了,至於後邊的問號,與第5條後面的問號意思一樣;

最後的$表示是被匹配字符串的末尾,也就代表着,這個正則表達式只匹配出現在整個字符串最末尾的部分,如果出現在字符串中間,則不會被匹配;

最後,我舉出幾個典型的能夠被這條表達式匹配出來的字符串形式:

空字符串

任何字符串最後的空串

任何字符串最後的點加上換行

空格+括號包含一個以上數字,再加上後面緊跟一個點,點後面還必須有換行的字符串;

下面是代碼實例:(這裡的代碼中有多行的會被自動過濾,所以有些不準確)

$a = array(

‘ (01111).

‘, //全部匹配

‘(0222).

‘, //只匹配點加上換行(因為沒有空格不會匹配(0222))

‘ (0333333).

‘,  //匹配 空格加上(0333333)加上點加上若干個換行

‘ (044)’, //匹配空字符串,因為空格加上(044)是相當於預判的無名表達式,所以後面如果沒有跟隨有意義的匹配,那麼不對無名表達式進行匹配;

”,       //匹配空字符串

‘fdsa432’,  //匹配空字符串

‘魂f.

‘, //匹配點加上換行

‘ac (55)a’ //匹配空字符串

);

foreach($a as $k=$v){

if(preg_match(“/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/”, $v, $re)){

var_dump($re);

}

}

輸出:

php 16.什麼是正則表達式,並舉一個例子。

一、什麼是正則表達式

正則表達式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。

二、例子:

?php

$str = ‘我的電話號碼是:12345678’;

$pt = ‘/\d+/’;

preg_match_all($pt, $str, $arr);

echo ‘電話號碼:’ . $arr[0][0];

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/194299.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 14:37
下一篇 2024-12-02 14:37

相關推薦

  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字符串中搜索匹配正則表達式的位置,但它們有着不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • Python讀取中文

    Python是一種高級編程語言,被廣泛地應用於各種領域中。而處理中文數據也是其中重要的一部分。本文將介紹在Python中如何讀取中文,為大家提供指導和幫助。 一、讀取中文文件 在P…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • Python計算中文字符個數

    本文將從多個方面對Python計算中文字符個數進行詳細的闡述,包括字符串長度計算、正則表達式統計和模塊使用方法等內容。 一、字符串長度計算 在Python中,計算字符串長度是非常容…

    編程 2025-04-29
  • Python3亂碼轉中文

    本文將詳細介紹如何轉換Python3中的亂碼為中文字符,幫助Python3開發工程師更好的處理中文字符的問題。 一、Python3中文亂碼的原因 在Python3中,中文字符使用的…

    編程 2025-04-29
  • 從16進制轉義到中文字符

    16進制轉義是為了在不同的字符集、不同的編碼下,能夠保證特殊字符被正確的識別和渲染。本文將從多個方面對16進制轉義做詳細的闡述,讓讀者對其有更深入的了解。 一、轉義實現 在Web開…

    編程 2025-04-28
  • opendistroforelasticsearch-kibana的中文應用

    本文將介紹opendistroforelasticsearch-kibana在中文應用中的使用方法和注意事項。 一、安裝及配置 1、安裝opendistroforelasticse…

    編程 2025-04-28
  • Python IDLE如何設置中文運行環境

    Python IDLE是Python的集成開發環境,使用它可以方便地編寫、調試和執行Python程序。但是,默認情況下Python IDLE的運行環境是英文環境,如果需要在Pyth…

    編程 2025-04-27
  • Python 中文轉URL編碼

    本文將從以下幾個方面詳細闡述Python中實現中文轉URL編碼的方法及注意事項。 一、URL編碼概述 URL編碼也稱為百分號編碼,是一種將URL中的非ASCII字符轉換成“%”後加…

    編程 2025-04-27
  • 如何用Python輸出兩行中文字符

    在此篇文章中,我們將探討如何使用Python輸出兩行中文字符。具體而言,我們將從以下幾個方面進行闡述: 一、Python中文輸出的基礎知識 在開始探討如何輸出中文字符之前,我們需要…

    編程 2025-04-27

發表回復

登錄後才能評論