正則匹配 特殊的 符號

2022-03-06 05:03:13 字數 1478 閱讀 6813

\r  \n  \r\n:換行/回車符

\t:製表符

\d:數字(與[0-9]匹配相同)

\d:非數字(與[^0-9]匹配相同)

\w:單詞字元(與[0-9a-za-z]匹配相同)

\w:非單詞字元

\s:空格字元(與[ \t\n\r\f]相同)

\s:非空格字元

[\s\s]+ [\s\s]* :匹配任意字元,包括換行符

元字元:

包圍乙個字元類,字元類包括:[0-9] [a-z] [a-za-z] 等類似。 

() 包圍乙個字元分組或定義乙個反引用

$ 匹配行尾

^匹配行首

* 匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 *

+ 匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 +

? 匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符 ?

. 匹配除換行之外的任何字元

|管道符。例如:dog|cat:表示或者匹配dog或者匹配cat

老是忘記:

正則預設是貪婪匹配:.*

如果想要飛貪婪匹配:.*?

php utf-8下測試----匹配字串中是否包含中文: preg_match(

'/[\x80-\xff]/

', $str);

1. gbk (gb2312/gb18030)

\x00-\xff gbk雙位元組編碼範圍

\x20-\x7f ascii

\xa1-\xff 中文 gb2312

\x80-\xff 中文 gbk

2. utf-8

(unicode)

\u4e00-\u9fa5 (中文)

\x3130-\x318f (韓文

\xac00-\xd7a3 (韓文)

\u0800-\u4e00 (日文)*/

常用元字元

**說明.

匹配除換行符以外的任意字元

\w匹配字母或數字或下劃線或漢字

\s匹配任意的空白符

\d匹配數字

\b匹配單詞的開始或結束

^匹配字串的開始

$匹配字串的結束

常用限定符

**/語法說明*

重複零次或更多次

+重複一次或更多次

?重複零次或一次

重複n次

重複n次或更多次

重複n到m次

常用反義詞

**/語法

說明\w

匹配任意不是字母,數字,下劃線,漢字的字元

\s匹配任意不是空白符的字元

\d匹配任意非數字的字元

\b匹配不是單詞開頭或結束的位置

[^x]

匹配除了x以外的任意字元

[^aeiou]

匹配除了aeiou這幾個字母以外的任意字元

特殊的正則匹配需求

特殊的需求,正則匹配一段字串中的 504 前後 非數字 並且 如果504前後 如果有一端為數字就不進行替換操作 例如 a504a504b504c504a 這種情況504就要進行替換 數字 504a504 數字 這種情況就不進行替換 504 這種情況就不進行替換 stringbuilder strip...

修飾匹配次數的特殊符號

前面隨筆中講到的表示式,無論是只能匹配一種字元的表示式,還是可以匹配多種字元其中任意乙個的表示式,都只能匹配一次。如果使用表示式再加上修飾匹配次數的特殊符號,那麼不用重複書寫表示式就可以重複匹配。使用方法是 次數修飾 放在 被修飾的表示式 後邊。比如 bcd bcd 可以寫成 bcd 舉例 1 表示...

正規表示式的特殊符號

特殊符號 代表意義 alnum 代表英文大小寫字元及數字,即0 9 a z a z alpha 代表任何英文大小寫字元,即a z a z blank 代表空格鍵與tab鍵兩者 cntrl 代表鍵盤上面的控制按鍵,即cr tab del等 digit 代表數字,即0 9 graph 除了空格符 空格鍵...