php中的字串和正規表示式

2022-04-10 08:57:29 字數 3635 閱讀 6413

一、字串型別的特點

1、php是弱型別語言,其他資料型別一般都可以直接應用於字串函式操作。

<?php

//輸出345

//輸出345

//先查詢hello常量,若沒找到,將hello看做字串使用

2、字串可以作為「陣列」,是字元的集合。

<?php

3:

echo $str[0];

5:

echo $str[2];

但是字串不是真的陣列,不能使用陣列的函式.如count($str)不會返回字串長度。php引擎無法區分字元和陣列,產生二義性。自php4起,已經用花括號替代方括號。
<?php

3:

$str = "www.ido321.com";

5:

echo $str;

7:

?>

3、雙引號變數解析

在php中,當用雙引號或者定界符定義字串時,其中的變數會被解析。

<?php

"dwqs",'add' => "www.ido321.com");

//可以解析,但是在方括號中不能使用引號

5:echo

""; //可以解析,用花括號包含元素,name不帶引號也是可以的

7://假設存在物件$square

; //可以解析
; //不可以解析,用花括號解決
; //可以解析
二、字串輸出函式

三、常用的字串格式函式

ps:php的字串處理函式大部分不對源字串做修改,而是返回新的字串

四、正規表示式

正規表示式描述了一種字串匹配的模式,通過這個模式在特定的函式中對字串進行匹配、查詢、替換和分隔等操作,由原子、元字元和模式修正符三部分組成的文字模式。

在php中,有兩套正則的處理函式庫:pcre和posix。前者以preg_字首命名,與perl相容;後者以ereg_字首命名。二者功能相似,但pcre的效率略高。

與perl語言相容的正規表示式處理函式:

1、語法

1.1  定界符:在與perl相容的正則函式中使用模式時,必須給模式加上定界符。除了字母、數字和反斜線(\)之外的任何字元都可以作為定界符號

<?php

3:

echo $m1 = '/

5:echo $m3 = '!^(?i)php[34]!';

7:

?>

1.2  原子:原子包含了普通字元,如字母、數字;非列印字元,如空格、回車;特殊字元和元字元,如引號、*、+等,必須用」\」進行轉義;自定義原子表,如[apj]、[a-z];通用字元型別,如\d、\d。

<?php

3:

$mail1 = '/^[0-9a-za-z]+@[0-9a-za-z]+(\.[0-9a-za-z]+)$/';

5:?>

1.3  元字元:用於構建正規表示式的具有特殊含義的字元。perl可以使用各種元字元來搜尋匹配,如*、+、?.常見的元字元如下

1.4  模式修正符:在正則的定界符之外使用,擴充套件正則在匹配、替換等方面的功能。

2.與perl相容的正規表示式函式

2.1  preg_match(string pattern,string subject[,array matches]):用於對字串的查詢和匹配。引數說明:

pattern是正則,subject是需要處理的字串,可選的matches用於儲存於pattern的各個子模式的匹配結果,matches[0] 儲存了與pattern匹配的整體內容,matches[1]儲存了pattern中第乙個小括號中匹配的內容,以此類推。

<?php);

4:$subject = "我的部落格:";

6:echo

"搜尋的url是:".$matches[0]."

"; //陣列第1個元素儲存整個匹配結果

;//陣列第2個元素儲存第1個字表示式

;//陣列第3個元素儲存第2個字表示式
;//陣列第4個元素儲存第3個字表示式
;//陣列第5個元素儲存第4個字表示式
12:

?>

結果

preg_match_all()與preg_match()函式類似,不同的是前者會一直匹配到字串末尾,後者在第一次匹配後就停止匹配。

2.2  preg_grep(string pattern,array iput):匹配陣列中的元素,返回與正則匹配的陣列單元。引數說明:

pattern是正則,input是需要匹配的陣列。

<?php

3:

$version = preg_grep('/^[a-za-z]+(\d|\.)+$/',$arr);

5://輸出:array([1]=>apache2.2.9 [2]=>mysql5.0.51 [3]=>php5.2.6)

7:?>

2.3  preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit]):字串替換。說明:

該函式會在subject中搜尋與pattern的匹配項,並用replacement替換。limit用於限制匹配的次數,即替換的次數。

<?php3:

$text = '這個文字有粗體和帶有下劃線以及斜體';

//將所有html標記替換為空

//值替換前2個html標記

2.4  preg_split(string pattern,string subject[,int limit[,int flags]]):對字串進行分割。說明:

函式返回乙個陣列。陣列元素包含subject中與pattern匹配作為邊界所分割的字串,limit含義見2.3,flags含義請參考文件。

2:

//按任數量的空格分割字串

4:

6:

print_r($kerwords);

Javascript字串中的正規表示式

除了正規表示式物件及字面量外,string 物件中也有多個方法支援正規表示式操作,我們來通過例子討論這些方法 方法作用 match 匹配正規表示式,返回匹配陣列 replace 替換split 分割search 查詢,返回首次發現的位置 12 3 4 5 varstr life is very mu...

正規表示式匹配字串

正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計...

正規表示式匹配 字串

正規表示式匹配字串 假使,有幾個需要驗證的字串用 連線在一起 形如 farmer1,1farmer234 想用正規表示式來匹配每乙個字串。private static string sourcestr farmer1,1farmer234 private static string key farm...