這篇文章介紹的內容是關於php的正規表示式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
正規表示式是一種描述字串結果的語法規則,是一個特定的格式化模式,可以匹配、替換、截取匹配的字串。常用的語言基本上都有正規表示式,如JavaScript、java等。其實,只有了解一種語言的正規使用,其他語言的正則使用起來,就相對簡單些。好了,開始寫正規了。
相關推薦:
1. 正規表示式語法教學(含線上測試工具)
2. PHP正規表示式極速入門影片教學
正規表示式在符合字串時,遵循以下2個基本原則:
1.最左原則:正規表示式總是從目標字串的最左側開始,依序匹配,直到匹配到符合表達式要求的部分,或直到匹配目標字串的結束。
2.最長原則:對於符合的目標字串,正規表示式總是會符合到符合正規表示式要求的最長的部分;即貪婪模式
$str = 'http://baidu.com'; $pattern = '/http:\/\/.*com/';//需要转义/ preg_match($pattern,$str,$match); var_dump( $match);
$str = 'http://baidu.com'; $pattern = '#http://.*com#';//不需要转义/ preg_match($pattern,$str,$match); var_dump( $match);知道開始和結尾的寫法了,接下來就是中間的判斷了。正規表示式是自左向右的順序使用原子和元字元進行拼接。 例如'zxcv',進行配對時,‘/.*/’,其中.*代表zxcv 。
那麼通用原子和元字元有哪些呢?#
• \d符合一個數字字元。等價於 [0-9]。
• \D#符合一個非數字字元。等價於 [^0-9]。
• \f符合一個換頁符號。等價於 \x0c 和 \cL。
• \n符合一個換行符號。等價於 \x0a 和 \cJ。
• \r符合一個回車符號。等價於 \x0d 和 \cM。
• \s符合任何空白字符,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
• \S符合任何非空白字元。等價於 [^ \f\n\r\t\v]。
• \t符合一個製表符。等價於 \x09 和 \cI。
• \v符合一個垂直製表符。等價於 \x0b 和 \cK。
• \w符合包含底線的任何單字字元。等價於’[A-Za-z0-9_]’。
• \W符合任何非單字字元。等價於 ‘[^A-Za-z0-9_]’。
• \xn符合 n,其中 n 為十六進位轉義值。十六進制轉義值必須為確定的兩個數字長。例如,’\x41’ 符合 “A”。 ’\x041’ 則等價於 ‘\x04’ & “1”。正規表示式中可以使用 ASCII 編碼。
• \nm標識一個八進位轉義值或一個向後引用。如果 \nm 之前至少有 nm 個獲得子表達式,則 nm 為向後引用。如果 \nm 之前至少有 n 個獲取,則 n 為一個後接文字 m 的向後引用。如果前面的條件都不滿足,若 n 和 m 均為八進位數字 (0-7),則 • \nm 將符合八進位轉義值 nm。
• \nml若n 為八進位數字(0-3),且m 和l 均為八進位數字(0-7),則匹配八進制轉義值nml。
• \un十六進位數字表示的 Unicode 字元。例如, \u00A9 符合版權符號(?)。
• . 符合「\n」以外的任何單一字元
• ^ 符合輸入字串的開始位置。在字元域[]中表示取反,如'[^\w]'等於'\w';而^\w表示以單字字元開頭。
• $ 符合輸入字串的結束位置。例'\w$'表示以單字字元結尾。
• ? 符合前面的子表達式零次或一次 等價於 {0,1},例如,"do(es)?" 可以符合 "do" 或 "does"。
• * 符合前面的子運算式零次或多次,等價於{0,}。例如,zo* 能匹配 "z" 、 "zo"、'zoo'。
• 配對前面的子運算式一次或多次,等價於{1,}例如,'zo ' 能符合 "zo" 以及 "zoo"。
• {n} n 為非負整數,配對所確定的 n 次。例如,'o{2}' 不能匹配 "Bob" 或‘Booob’,但是能匹配 "food" 中的兩個 o。
• {n,} n 為非負整數。至少匹配n 次。例如,'o{2,}' 不能符合 "Bob" 中的 'o',但能符合 "foooood" 中的所有 o。 'o{1,}' 等價於 'o '。 'o{0,}' 則等價於 'o*'。
• {n,m} m 和 n 皆為非負整數,其中n
• [] 字元集合(字元域)。匹配所包含的任意一個字元。例如, '[abc]' 可以符合 "plain" 中的 'a'。
• () 符合 ()內的內容 並取得此符合。搭配\n(n為大於1的整數),'http://baidu.com'若表達式:'(\w ) (:)\/\/.*\1'則符合'http://baidu .comhttp',\1表示http。
• (?:) 匹 配 但不取得配對結果,不進行儲存以供日後使用。這在使用 "或" 字元 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是比 'industry|industries' 更簡單的表達式。上面表達式若改為'(?:\w )(:)\/\/.*\1',則\1表示為:
• | x|y,匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
• [-] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
• (?=pattern)正 向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹 配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹 配的搜索,而不是从包含预查的字符之后开始。
• (?!pattern)负 向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不 需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜 索,而不是从包含预查的字符之后开始
有时候最后定界符会有一个字母,如‘/as.*/i’,那这个i又是什么呢,这就是模式修正符;
i表示在和模式进行匹配进不区分大小写
m将模式视为多行,使用^和$表示任何一行都可以以正则表达式开始或结束
s如果没有使用这个模式修正符号,元字符中的"."默认不能表示换行符号,将字符串视为单行
x表示模式中的空白忽略不计
e正则表达式必须使用在preg_replace替换字符串的函数中时才可以使用(讲这个函数时再说)
A以模式字符串开头,相当于元字符^
Z以模式字符串结尾,相当于元字符$
U正则表达式的特点:就是比较“贪婪”,使用该模式修正符可以取消贪婪模式
例:
$str = 'asddadsdasd'; $pattern = '/a.*d/'; preg_match($pattern,$str,$match); var_dump($match) ;//asddadsdasd; $str = 'asddadsdasd'; $pattern = '/a.*d/U';//$pattern = '/a.*?d/'; preg_match($pattern,$str,$match); var_dump($match) ;//asd
php常用正则函数;
匹配:preg_match()与preg_match_all()
1 preg_match($pattern,$subject,[array &$matches])
2 preg_match_all($pattern,$subject,array &$matches)
1只会匹配一次,2会把所有符合的字符串都匹配出来,并且放置到matches数组中,而且这两个函数都有一个整形的返回 值。1是一维数组,2是二维数组
替换:preg_replace()
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索subject中匹配pattern的部分, 以replacement进行替换。
相关推荐:
以上是php的正規表示式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具