php的正则表达式函数,php中常用的正则表达式函数
php中常用的正則表達(dá)式函數(shù)
* preg_match()
* preg_match_all()
* preg_replace()
* preg_filter()
* preg_grep()
* preg_split()
* preg_quote()
接下來(lái)對(duì)比講解:
講解中 $pattern 通常表示正則表達(dá)式
$subject 通常表示目標(biāo)處理數(shù)據(jù)
定義一個(gè)方法 方便查看數(shù)據(jù)類型:
function show($val = null){
if(empty($val)){
//打印空
echo 'null';
}elseif(is_array($val) || is_object($val)){
//打印數(shù)組或者對(duì)象
echo '
';print_r($val);
echo '
';}else{
//打印string int float
echo $val;
}
}
preg_match()與preg_match_all()
/*方法簡(jiǎn)單說(shuō)明*/
preg_match($pattern,$subject,[array &$matches]) //匹配一次 第三個(gè)參數(shù)可選 匹配結(jié)果放置matches數(shù)組
preg_match_all($pattern,$subject,array &matches) //匹配多次 三參必選 匹配結(jié)果放置matches數(shù)組
$pattern = '/[0-9]/';
$subject='b5fg4sgf3sd2f1g';
$m1 =preg_match($pattern,$subject,$arr1);
show($m1);
show($arr1);
/*
1
Array
(
[0] => 5
)
*/
$m2 =preg_match_all($pattern,$subject,$arr2);
show($m2);
show($arr2);
/*
5
Array
(
[0] => Array
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
)
)
*/
2.preg_replace()與preg_filter()/*方法簡(jiǎn)單說(shuō)明*/
* preg_replace與preg_filter
* preg_replace($pattern,$replacement,$subject)
* //正則替換函數(shù)被替換對(duì)象是數(shù)組 返回全部
//正則替換函數(shù) 被替換對(duì)象是數(shù)組 僅返回被替換元素
* 聯(lián)想:str_repalce()
* echo str_replace("world","Shanghai","Hello world!");
* //得到Hello Shanghai!
//第一測(cè) 字符串中替換字符串 結(jié)論:此處preg_replace()與preg_filter()無(wú)區(qū)別
$pattern = '/[0-9]/';
$subject='b65fg4sgf3sd2f1g';
$replacement = '_';
$str1 = preg_replace($pattern,$replacement,$subject);
$str2 = preg_filter($pattern,$replacement,$subject);
echo '
';
show($str1);
echo '
';
show($str2);
/*
b__fg_sgf_sd_f_g
b__fg_sgf_sd_f_g
*/
//第二測(cè) 字符串中根據(jù)數(shù)組正則 替換 結(jié)論:此處preg_replace()與preg_filter()無(wú)區(qū)別
$pattern = array('/[123]/','/[456]/','/[789]/');
$subject='b123fg3456sgf3789f1g';
$replacement = array('天','地','人');
$str3 = preg_replace($pattern,$replacement,$subject);
$str4 = preg_filter($pattern,$replacement,$subject);
echo '
';
show($str3);
echo '
';
show($str4);
/*
b天天天fg天地地地sgf天人人人f天g
b天天天fg天地地地sgf天人人人f天g
*/
//第三測(cè) 數(shù)組中根據(jù)數(shù)組正則 替換 結(jié)論:此處展示preg_repalce()與preg_filter()有區(qū)別
$pattern = array('/[123]/','/[456]/','/[789]/');
$subject=array('b','fg3','456','sgf','789','fg');
$replacement = array('天','地','人');
$str5 = preg_replace($pattern,$replacement,$subject);
$str6 = preg_filter($pattern,$replacement,$subject);
echo '
';
show($str5);
echo '
';
show($str6);
/*
Array
(
[0] => b
[1] => fg天
[2] => 地地地
[3] => sgf
[4] => 人人人
[5] => fg
)
Array
(
[1] => fg天
[2] => 地地地
[4] => 人人人
)
*/
3 . preg_grep($pattern, array $subject) //此處$subject只可以為一維數(shù)組
/*函數(shù)說(shuō)明*/
preg_grep($pattern,array $input)//只可以匹配一維數(shù)組 返回匹配成功的數(shù)組元素
可以理解preg_grep()為閹割版 preg_filter()
只做了匹配 不作替換
$pattern = '/[0-9]/';
$subject=array('b','fg3','456','sgf','789','fg');
$arr = preg_grep($pattern,$subject);
show($arr);
/*
Array
(
[1] => fg3
[2] => 456
[4] => 789
)
*/
4 . preg_split($pattern,$subject)//一匹配成功為切割點(diǎn)切割字符串成數(shù)組
可以理解preg_split()升級(jí)版的explode()
$pattern = '/[0-9]/';
$subject='bfg3456sgf789fg';
$arr = preg_split($pattern,$subject);
show($arr);
/*
Array
(
[0] => bfg
[1] =>
[2] =>
[3] =>
[4] => sgf
[5] =>
[6] =>
[7] => fg
)
*/
5 . preg_quote($str) 正則運(yùn)算符轉(zhuǎn)譯
/*
* preg_quote($str) 正則運(yùn)算符轉(zhuǎn)譯
* . \ + * ? [ ^ ] $ () {} = ! < > | : -
*
*/
echo '
';
$str = "qewr{asdf}[123]";
$str =preg_quote($str);
print_r($str);
/*
qewr\{asdf\}\[123\]
*/簡(jiǎn)單總結(jié)通性:
preg_ 開(kāi)頭
除preg_quote函數(shù)以外,第一個(gè)參數(shù)都是正則表達(dá)式
preg_match 表單驗(yàn)證等
preg_replace 非法詞語(yǔ)過(guò)濾等
Python常用模塊中常用內(nèi)置函數(shù)的具體介紹
Python作為計(jì)算機(jī)語(yǔ)言中常用的語(yǔ)言,它具有十分強(qiáng)大的功能,但是你知道Python常用模塊I的內(nèi)置模塊中常用內(nèi)置函數(shù)都包括哪些具體的函數(shù)嗎?以下的文章就是對(duì)Python常用模塊I的內(nèi)置模塊的常用內(nèi)置 ...
iOS開(kāi)發(fā)中常用的數(shù)學(xué)函數(shù)
iOS開(kāi)發(fā)中常用的數(shù)學(xué)函數(shù) /*---- 常用數(shù)學(xué)公式 ----*/ //指數(shù)運(yùn)算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //開(kāi)平方 ...
實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中常用C語(yǔ)言函數(shù)的9大用法
C語(yǔ)言是當(dāng)中最廣泛的計(jì)算機(jī)編程語(yǔ)言,是所有計(jì)算機(jī)編程語(yǔ)言的祖先,其他計(jì)算機(jī)編程語(yǔ)言包括當(dāng)前流行的Java語(yǔ)言,都是用C語(yǔ)言實(shí)現(xiàn)的,C語(yǔ)言是編程效率最高的計(jì)算機(jī)語(yǔ)言,既能完成上層應(yīng)用開(kāi)發(fā),也能完成底層硬 ...
Sql 中常用時(shí)間處理函數(shù)
1.Sql 中常用時(shí)間處理函數(shù)? GETDATE()? 返回當(dāng)前的日期和時(shí)間 DATEPART()? 返回日期/時(shí)間的單獨(dú)部分 DATEADD()? ?返回日期中添加或減去指定的時(shí)間間隔 DATEDI ...
PHP中常用的正則表達(dá)式由哪些元素構(gòu)成?
在程序開(kāi)發(fā)中,我們常常要用到正則表達(dá)式,對(duì)于新手來(lái)說(shuō),很多時(shí)候知道正則表達(dá)式是怎么回事,但當(dāng)真正需要使用的時(shí)候,卻不知該用什么函數(shù),具體的修飾符也比較混亂.下面小編就為大家整理了一些php正則表達(dá)式中 ...
JavaScript 中常用的 正則表達(dá)式
這編文章我來(lái)整理了一些在 javascript 中常用的正則式希望能給大家?guī)?lái)一些開(kāi)發(fā)的靈感 //校驗(yàn)是否全由數(shù)字組成 function isDigit(s)?{?var patrn=/^[0-9]{ ...
收集JavaScript中常用的方法函數(shù)
本文中,收集了一些比較常用的Javascript函數(shù),希望對(duì)學(xué)習(xí)JS的朋友們有所幫助. 1. 字符串長(zhǎng)度截取 function cutstr(str, len) { var temp, icount ...
js中常用的正則表達(dá)式
我一般對(duì)正則的使用方式如下,該方法會(huì)返回一個(gè)boolean值,然后對(duì)這個(gè)返回值來(lái)進(jìn)行判斷 // 判斷是否是整數(shù) function isInt(num) { var reg = new RegExp(& ...
【Oracle】Oracle中常用的系統(tǒng)函數(shù)
Oracle?SQL?提供了用于執(zhí)行特定操作的專用函數(shù).這些函數(shù)大大增強(qiáng)了?SQL?語(yǔ)言的功能.函數(shù)可以接受零個(gè)或者多個(gè)輸入?yún)?shù),并返回一個(gè)輸出結(jié)果.在Oracle還可以自定義函數(shù),關(guān)于更多信息可以查 ...
隨機(jī)推薦
./configure,make,make install的作用
這些都是典型的使用GNU的AUTOCONF和AUTOMAKE產(chǎn)生的程序的安裝步驟. ./configure是用來(lái)檢測(cè)你的安裝平臺(tái)的目標(biāo)特征的.比如它會(huì)檢測(cè)你是不是有CC或GCC,并不是需要CC或GCC ...
TortoiseGit 連接Git服務(wù)器不用每次輸入用戶名和密碼的方法
每次git push?都要輸入用戶名和密碼. 雖然安全,但在自己電腦上每次都輸有些麻煩,如何記住用戶名和密碼呢? 試了很多方法,找到這個(gè)最簡(jiǎn)單,親測(cè)可行. 當(dāng)你配置好git后,在C盤C:\Users\ ...
Cron運(yùn)行原理
from:http://blog.chinaunix.net/uid-20682147-id-4977039.html 目錄 目錄 1 1.?前言 1 2.?示例 1 3.?工作過(guò)程 2 4.?一個(gè)詭 ...
Z-Stack協(xié)議中幾個(gè)重要概念的理解
1. 原語(yǔ) ??? ZigBee設(shè)備在工作時(shí),各種不同的任務(wù)在不同的層次上執(zhí)行,通過(guò)層的服務(wù),完成所要執(zhí)行的任務(wù).每一層的服務(wù)主要完成兩種功能:根據(jù)它的下層服務(wù)要求,為上層提供相應(yīng)的服務(wù):另一咱是根據(jù) ...
SQL Server帶游標(biāo)的SQL
DECLARE test_cursor CURSOR FOR SELECT ID FROM dbo.T_BD_Restaurant WHERE id <> '0AAB2E55-79F8-4 ...
想要薪資20-30K,Python程序員認(rèn)真敲代碼就夠了!
在這個(gè)年代,互聯(lián)網(wǎng)的飛速壯大大家有目共睹,除了表露出的公共受益,其中計(jì)算機(jī)編程者也是做出了巨大的貢獻(xiàn),即使外國(guó)編程語(yǔ)言仍舊屬于領(lǐng)導(dǎo)者,但是在互聯(lián)網(wǎng)的壯大下,我們這是"地球村",國(guó)內(nèi) ...
Pandas系列(十六)- 你需要學(xué)會(huì)的騷操作
pandas有一種功能非常強(qiáng)大的方法,它就是accessor,可以將它理解為一種屬性接口,通過(guò)它可以獲得額外的方法.其實(shí)這樣說(shuō)還是很籠統(tǒng),下面我們通過(guò)代碼和實(shí)例來(lái)理解一下. pd.Series._ac ...
SoapUI測(cè)試WebService接口
Getting Started Getting started with some ad-hoc testing of a SOAP service is straight forward; se ...
centos查看系統(tǒng)版本信息
1.查看版本文件名稱 ll /etc/*centos* 2.顯示系統(tǒng)版本號(hào) cat /etc/centos-release
總結(jié)
以上是生活随笔為你收集整理的php的正则表达式函数,php中常用的正则表达式函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lwip+freeRTOS 无法ping
- 下一篇: 打架打出来的牛逼城市!