正則表達式 PHP

正則表達式的常用函數:

先寫一個函數show,用來輸出數組,使代碼看起來方便,且把經常重復用到的量放在前面

function show($var=null)
{if(empty($var))//檢測變量是否為空{echo 'null';}elseif (is_array($var)||is_object($var))//檢測變量是否為數組或對象{echo '<pre>';print_r($var);echo '<pre>';}else{echo $var;}$pattern='/[0-9]/';
$subject="gyg87yuhg765t6rtfygvhfct7";
$replacement="¥";

1.

preg_match($pattern,$subject,[array&matches])和preg_match_all($pattern,$subject,[array&matches])

作用:

進行匹配,返回匹配的個數

變量:

$pattern 正則表達式,$subject目標字符串,[array&matches] 把匹配到的字符串放到一個數組中,可選

區別:

preg_match($pattern,$subject,[array&matches])*****只進行一次匹配,返回值為匹配個數,只有0和1preg_match_all($pattern,$subject,[array&matches])***匹配完全部目標數據,返回匹配個數

例:
//preg_match($pattern,$subject,[array&matches])*****只進行一次匹配,返回值為匹配個數,只有0和1
//,preg_match_all($pattern,$subject,[array&matches])***匹配完全部目標數據,返回匹配個數
$m1=$m2=array();$t1=preg_match($pattern,$subject,$m1);
$t2=preg_match_all($pattern,$subject,$m2);show($m1);
echo "<hr />";
show($m2);
echo "<hr />";
show($t1.'||'.$t2);
echo "<hr />";

在這里插入圖片描述

2:

preg_replace($pattern,$replacement,$subject)preg_filter($pattern,$replacement,$subject)
功能:

實現查找并替換

參數:

$replacement替換成的字符

返回值:

替換后的字符串

區別:

當subject對應數組單元中沒有滿足正則表達式的值時,preg_replace會保留原來的數組單元,preg_filter會刪除不符合表達式的數組單元,僅保留有滿足表達式的單元

普通字符串二者作用差不多

$re=preg_replace($pattern,$replacement,$subject);
$fil=preg_filter($pattern,$replacement,$subject);show($re);
echo "<br />";
show($fil);

在這里插入圖片描述

對象為數組時:

$pattern_rf=array('/[0123]/','/[456]/','/[789]/');
$replacement_rf=array('啊','西','吧');
$subject_rf=array('yty65','vh1jh','hghg','8uhhj','gggy');
$re_rf=preg_replace($pattern_rf,$replacement_rf,$subject_rf);
$fil_rf=preg_filter($pattern_rf,$replacement_rf,$subject_rf);echo "<hr />";
show($re_rf);
echo "<br />";
show($fil_rf);

在這里插入圖片描述

3:

preg_grep($pattern,$subject_rf)
作用:

在目標數組中匹配并且只保留匹配到的數組的單元,相當于preg_filter取消替換功能

$gr=preg_grep($pattern,$subject_rf);
echo "<hr />";
show($gr);

在這里插入圖片描述

4:

preg_split($pattern,$subject);
preg_quote($str)
作用:

preg_split通過pattern 匹配字符串,并以匹配到的字符串作為分割點分割字符串,將分割得到的若干字符串保存到一個數組中,作為函數返回值返回 preg_quote轉義

$spl=preg_split($pattern,$subject);
echo "<hr />";
show($spl);
echo "<hr />";
$str='{hhhhhhhhh[]}';
show($str);
echo "<br />";
$str=preg_quote($str);
show($str);
echo "<hr />";

在這里插入圖片描述
在這里插入圖片描述

正則表達式的語法

1,界定符:

作用:

標志正則表達式開始和結束

類型:
//,##,{}
推薦在線工具:regexpal

在這里插入圖片描述

2.原子

分為可見原子和不可見原子,可見原子即可以看見的字符串,不可見原子即看不見的字符串,例如空格,制表,回車等

3.元字符:

元字符作用
1.表示原子的篩選方式:
|,[],[^]
[]表示匹配內部元素,如;[0-9]表示匹配0-9的數字,二[^]表示匹配除[]內的元素,注意:^必須更在[后面
2.表示原子的集合

.  \d  \D  \s  \S  \w  \W

各自的作用:

  1. . :匹配除換行外的所有字符
  2. \d: 匹配0-9的數字,類似于[0-9]
  3. \D: 匹配除0-9外的所有元素,類似于[^0-9]
  4. \s \S :匹配不可見(可見)原子
  5. \w \W :匹配任意(非)字母數字下劃線
4.量詞

表示某個原子出現的次數
{n} ;表示某個原子恰好出現n次
{n,} :表示某個原子至少出現n次
{n,m}:表示某個原子至少出現n次,至多m次
*:表示某個原子至少出現0次
+:表示某個原子至少出現1次
:表示某個原子至少出現0次,至多1次

5.邊界控制

^: 匹配字符串開始的位置
$: 匹配字符串結束的位置
匹配成功必須要以^之后的原子開始,以$之前的原子結束

6.模式單元

(pattern):模式單元中的正則表達式可以當作一個原子看待

7.修正符

1.貪婪匹配與懶惰匹配
貪婪匹配取其長,懶惰匹配(修正符:U)取其短

$pattern_xz_TL='/\d.+zjb/';
$subject_xz="uuuhytftdr677tz7tdrzjbhbhzjbbhjzjb,,,";
$matches_xz_TL=array();
preg_match($pattern_xz_TL,$subject_xz,$matches_xz_TL);
show($matches_xz_TL);
echo "<br />";
$pattern_xz_LD='/\d.+zjb/U';
$matches_xz_LD=array();
preg_match($pattern_xz_LD,$subject_xz,$matches_xz_LD);
show($matches_xz_LD);
echo "<hr />";

在這里插入圖片描述

如上,使用貪婪匹配,匹配到第一個zjb后會繼續匹配,直到匹配完整個字符串,若使用懶惰匹配,則匹配到第一個zjb后就直接返回

常用修正符:
U:懶惰匹配
i:忽略大小寫
x:忽略空白
s:使.包含換行符,匹配所有


根據慕課網視頻所寫,原視頻鏈接

源代碼鏈接

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/457704.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457704.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457704.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iis發布網站怎么支持.json文件

轉載于:https://www.cnblogs.com/daizhipeng/p/5622839.html

PHP Cookie和Session

cookie cookle常用來識別用戶&#xff0c;可以理解為瀏覽器留下的一種文件&#xff0c;cookie可以分為會話cookie和硬盤cookie兩種&#xff0c;會話cookie生命周期短&#xff0c;瀏覽器關閉即銷毀&#xff0c;硬盤cookie生命周期由開發者設定&#xff0c;可長可短 1.創建cook…

瀏覽器渲染機制

1. 明白瀏覽器渲染的目的 可訪問性&#xff08;Accessability&#xff09;、加載性能和重構靈活性一直是前端工程師們關心的主題。 其中加載性能與瀏覽器的渲染機制深深掛鉤&#xff0c;弄明白瀏覽器背后的渲染機制&#xff0c;才能在日常的前端的開發中明白如何進行性能優化。…

java中List Set Map使用

Testpublic void run(){ArrayList<String> list new ArrayList<String>();list.add( "美女");list.add( "帥哥");list.add( "芙蓉姐姐" );for (int i 0; i < list.size(); i) {String strlist.get(i);System. out.println(str);…

python免費開源工具推薦_年薪200萬的程序員,推薦這10大Python免費開源工具!

原標題&#xff1a;年薪200萬的程序員&#xff0c;推薦這10大Python免費開源工具&#xff01;毫無疑問&#xff0c;Python是最流行的語言之一&#xff0c;其成功的原因之一是它為科學計算提供了廣泛的報道。 在這里&#xff0c;我們仔細研究用于機器學習和數據科學的十大Python…

通過Yeoman快速搭建AngularJS webapp應用的實踐

這里主要記錄關于使用yeoman快速構建angluarJS的前端應用的實踐&#xff1a; 安裝node、yeoman等過程略去 1、首頁我們可以在公共的腳手架中找到自己想要的腳手架&#xff0c;官方腳手架庫的地址 Yeoman generators: http://yeoman.io/generators/ 這里我們選擇官方團隊出的ang…

[Objective-C]編程藝術 筆記整理

看了《禪與 Objective-C 編程藝術》&#xff0c;發現不少平時不注意的或注意但沒有系統總結的東西&#xff0c;特此記錄一下。 這次沒有整理完&#xff0c;后續更新會結合手里的一些其他資料整理。 新博客wossoneri.com傳送門 完整的介紹看這兩個鏈接Google開源項目風格指南禪與…

python大數據工程師 培訓_大數據工程師學習之路

大數據的作用&#xff1a;發現過去事件的特征預測未來最優化選擇職位劃分&#xff1a;數據產品經理數據分析師->商業敏感性&#xff0c;產品經理的助手數據研發工程師數據挖掘工程師/數據科學家需要準備的技術知識&#xff1a;Linux操作系統與網絡編程&#xff1a;進程/線程…

python序列

python序列 列表 python變量不存放值&#xff0c;之存放值的引用&#xff0c;所以列表中元素可以是不同類型 1.常用方法 1.1 增加元素 append,在末尾插入元素 extend&#xff0c;將一個列表整體插入到尾部 insert&#xff0c;將某個元素插入到特定位 /*&#xff0c;拼合…

前端資源(11)

移動端API 地址99移動端知識集合 https://github.com/jtyjty99999/mobileTech移動端前端開發知識庫 https://github.com/AlloyTeam/Mars移動前端的一些坑和解決方法&#xff08;外觀表現&#xff09; http://caibaojian.com/mobile-web-bug.html【原】移動web資源整理 http://w…

win10使用Composer-Setup安裝Composer以及使用Composer安裝Yii2最新版

1&#xff1a;下載 ca-bundle.crt和cacert.pem(見導航欄——文件) 將這兩個文件放在php目錄下 2:php.ini中添加上述兩個文件的路徑 curl.cainfoC:/xampp/php/ca-bundle.crtopenssl.cafileC:/xampp/php/ca-bundle.crt 寫到最后一行就可以 3&#xff1a;下載Composer-Setup.exe h…

python離群點檢測方法分幾類_數據分析 第五篇:離群點檢測

離群點(outlier)是指和其他觀測點偏離非常大的數據點&#xff0c;離群點是異常的數據點&#xff0c;但是不一定是錯誤的數據點。確定離群點對于數據分析會帶來不利的影響&#xff0c;比如&#xff0c;增大錯誤方差、影響預測和影響正態性。從散點圖上可以直觀地看到離群點&…

計算機網絡TCP/IP

TCP/IP原理 看《圖解TCP/IP》時做的筆記&#xff0c;記錄一些感覺重要的東西…還沒完&#xff0c;正在學&#xff0c;慢慢寫 1.計算機網絡的發展 2.OSI參考模型 3.傳輸方式分類 4.地址及網絡的構成 5.TCP/IP協議的出現 6.TCP/IP分層模型及通信示例 7.數據鏈路層1 8.數…

hive求差集和交集

2019獨角獸企業重金招聘Python工程師標準>>> 用的要求總數和統計數&#xff1a; 總數的概念是利用安卓ID&#xff0c;就以為這把兩個月前的安卓ID統統的統計一遍&#xff0c;如果沒有出現&#xff0c;恰好在今天出現了&#xff0c;那么當前的這個用戶就是新增的…

python靜態方法可以被繼承嗎_python 類的繼承 實例方法.靜態方法.類方法的代碼解析...

這篇文章主要介紹了python 類的繼承 實例方法.靜態方法.類方法的代碼解析,文中通過示例代碼介紹的非常詳細&#xff0c;對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下dt{}class Denglu:def register(self,name,psd):if name.isalnum() and psd.isalnum():i…

漸變色--瀏覽器兼容性

說明&#xff1a; 1.360兼容模式效果不好 2.可以直接用不同瀏覽器打開這個頁面查看效果 <!DOCTYPE html><html><head lang"en"> <meta charset"UTF-8"> <title></title> <style> body{ …

如何學習前端 轉載

作者&#xff1a;小不了鏈接&#xff1a;https://zhuanlan.zhihu.com/p/23265155來源&#xff1a;知乎著作權歸作者所有。商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處。 鑒于時不時&#xff0c;有同學私信問我&#xff08;老姚&#xff0c;下同&#xff09;怎…

tcp前4字節消息長度_網絡基礎篇之TCP

?網絡分層什么是 TCP TCP 是面向連接的、可靠的、基于字節流的傳輸層通信協議。- 面向連接&#xff1a;通過三次握手建立一對一的連接&#xff08; UDP 協議 可以一個主機同時向多個主機發送消息&#xff0c;即一對多&#xff09;&#xff1b;- 可靠的&#xff1a;通過序號、校…

使用Servlet實現用戶注冊

1、用戶注冊頁面代碼 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&q…

年輕人的第一篇V語言筆記

V語言極限學習 我聽說V語言看文檔半小時就能完全掌握&#xff1f;&#xff1f;&#xff1f;&#xff1f;以我的智商一小時掌握不了我就給各位科普一下廣告法&#xff1f;&#xff1f;&#xff1f; 宇宙慣例hello world // first v code fn main(){printIn("hello world…