php正則修正符,php使用正則表達式

本文目錄一覽:

PHP正則表達式問題(帝國CMS)

/後邊的是修正符其中i是不區分大小寫修正符很有用的例子:<?php//標記在整個模式之外;例://¥mode="/\bis\b/U",其中U在外面; //修正符:i 不區分大小寫的匹配;//如:"/abc/i"可以與abc或aBC或ABc等匹配; //修正符:m 將字符串視為多行7不管是那行都能匹配;例://模式為:¥mode="/abc/m";//要匹配的字符串為:¥str="bcefg5e\nabcdfe"//注意其中\n,換行了;abc換到了下一行;//¥str和¥mode仍可以匹配,修正符m使得多行也可匹配; //修正符:s 將字符串視為單行,換行符作為普通字符;例://模式為:¥mode="/pr.y/";//要匹配字符串為:¥str="pr\ny";//兩者不可匹配; . 是除了換行以外的字符可匹配;//修改下模式為:¥mode="/pr.y/s";//其中修正符s將\n視為普通字符,即不是換行;//最後兩者可以匹配; //修正符:x 將模式中的空白忽略; //修正符:A 強制從目標字符串開頭匹配;例://¥mode="/abc/A";//可以與¥str="abcsdfi"匹配9//不可以與¥str2="sdsdabc"匹配;//因為¥str2不是以abc開頭; //修正符:D 如果使用¥限制結尾字符,則不允許結尾有換行;例://模式為:¥mode="/abc¥/";//可以與最後有換行的¥str="adshabc\n"匹配;//元子符¥會忽略最後的換行\n;//如果模式為:¥mode="/abc/D"0628//則不能與¥str="adshabc\n"匹配,//修正符D限制其......餘下全文>>

PHP正則表達式((?:[0-9a-zA-Z$_.`-]|[\xC2-\xDF][\x80-\xBF])+)/is是什麼意思?

(?: )表示只進行分組,不進行捕獲

[0-9a-zA-Z$_.`-] ——0-9、a-z、A-Z或$、_、.、`、-中的一個字符

| ——表示或者

[\xC2-\xDF][\x80-\xBF] ——用十六進制表示的字符範圍【具體是什麼字符不太清楚,比如漢字的範圍一般是 4E00-9FA5】

+ ——前面的字符有一個或多個

(?: +) 外面的括號( )——是捕獲括號。即不捕獲單個匹配字符,只捕獲匹配的最大字串。

/is——是PHP中正則表達式模式修飾符,其中i代表 不區分大小寫,s代表:如果設定了這個修正符,那麼,被匹配的字符串將視為一行來看,包括換行符,換行符將被視為普通字符串。

模式修飾符還有:m、x、e等

php 正則表達式

建議你到我的網站上下載PHP5參考手冊,裡邊有詳細的正則表達式的參考。

模式要有開始和結束的字符,一下都是合法的:

/

|

#

前提是模式中不能再出現這個字符了。

結尾的/後邊的is是模式修政府,具體如下

i (PCRE_CASELESS)

如果設定此修正符,模式中的字符將同時匹配大小寫字母。

m(PCRE_MULTILINE)

默認情況下,PCRE 將目標字符串作為單一的一「行」字符所組成的(甚至其中包含有換行符也是如此)。「行起始」元字符(^)僅僅匹配字符串的起始,「行結束」元字符($)僅僅匹配字符串的結束,或者最後一個字符是換行符時其前面(除非設定了 D 修正符)。這和 Perl 是一樣的。

當設定了此修正符,「行起始」和「行結束」除了匹配整個字符串開頭和結束外,還分別匹配其中的換行符的之後和之前。這和 Perl 的 /m 修正符是等效的。如果目標字符串中沒有「\n」字符或者模式中沒有 ^ 或 $,則設定此修正符沒有任何效果。

s(PCRE_DOTALL)

如果設定了此修正符,模式中的圓點元字符(.)匹配所有的字符,包括換行符。沒有此設定的話,則不包括換行符。這和 Perl 的 /s 修正符是等效的。排除字符類例如 [^a] 總是匹配換行符的,無論是否設定了此修正符。

x(PCRE_EXTENDED)

如果設定了此修正符,模式中的空白字符除了被轉義的或在字符類中的以外完全被忽略,在未轉義的字符類之外的 # 以及下一個換行符之間的所有字符,包括兩頭,也都被忽略。這和 Perl 的 /x 修正符是等效的,使得可以在複雜的模式中加入注釋。然而注意,這僅適用於數據字符。空白字符可能永遠不會出現於模式中的特殊字符序列,例如引入條件子模式的序列 (?( 中間。

e

如果設定了此修正符,preg_replace() 在替換字符串中對逆向引用作正常的替換,將其作為 PHP 代碼求值,並用其結果來替換所搜索的字符串。

只有 preg_replace() 使用此修正符,其它 PCRE 函數將忽略之。

注意: 本修正符在 PHP3 中不可用。

A(PCRE_ANCHORED)

如果設定了此修正符,模式被強製為「anchored」,即強制僅從目標字符串的開頭開始匹配。此效果也可以通過適當的模式本身來實現(在 Perl 中實現的唯一方法)。

D(PCRE_DOLLAR_ENDONLY)

如果設定了此修正符,模式中的美元元字符僅匹配目標字符串的結尾。沒有此選項時,如果最後一個字符是換行符的話,美元符號也會匹配此字符之前(但不會匹配任何其它換行符之前)。如果設定了 m 修正符則忽略此選項。Perl 中沒有與其等價的修正符。

S

當一個模式將被使用若干次時,為加速匹配起見值得先對其進行分析。如果設定了此修正符則會進行額外的分析。目前,分析一個模式僅對沒有單一固定起始字符的 non-anchored 模式有用。

U(PCRE_UNGREEDY)

本修正符反轉了匹配數量的值使其不是默認的重複,而變成在後面跟上「?」才變得重複。這和 Perl 不兼容。也可以通過在模式之中設定 (?U) 修正符或者在數量符之後跟一個問號(如 .*?)來啟用此選項。

X(PCRE_EXTRA)

此修正符啟用了一個 PCRE 中與 Perl 不兼容的額外功能。模式中的任何反斜線後面跟上一個沒有特殊意義的字母導致一個錯誤,從而保留此組合以備將來擴充。默認情況下,和 Perl 一樣,一個反斜線後面跟一個沒有特殊意義的字母被當成該字母本身。當前沒有其它特性受此修正符控制。

u(PCRE_UTF8)

此修正符啟用了一個 PCRE 中與 Perl 不兼容的額外功能。模式字符串被當成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起開始檢查模式的 UTF-8 合法性。

php 身份證的正則表達式怎麼寫?

$IdCard = “/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i”;

提示 :正則格式: 『/正則表達式/模式修正符』;

所以 添加 i 是忽略英文字母大小寫的

php中正則表達式中模式修正符號Z,意思是強制以什麼結尾。為什麼在php中不能用

\Z 匹配必須出現在字符串的末尾或出現在字符串末尾的 \n 之前。

\z 匹配必須出現在僅字符串的末尾。

並且它們都不受多行模式及點模式的影響。

例如:在匹配如多行文本時

11dfdf

22sdff

33dfdf

[此處是一空行]

\w+\Z 僅匹配到的是空行前的 33dfdf,而 \w+\z 則什麼都匹配不到,因為最後是以空行結尾的。

若上述文本中沒有最後的空行,則它們都能匹配到 33dfdf。

最後說明下,php 中是可以使用 \z 和 \Z 的。

php正則表達式模式修正符U

?是匹配一個字符,而*是匹配多個字符,所以這樣有沒有?一個樣

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

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

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python正則表達式search()和match()有什麼區別?

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

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台服務器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • 深入了解sed正則匹配

    一、sed 命令是什麼 sed(stream editor)是一種非交互式流式文本編輯器。它用於對文本進行編輯、轉換。sed 主要用於自動編輯。即通過腳本或命令直接對文本進行編輯。…

    編程 2025-04-24

發表回復

登錄後才能評論