對於正則表達式一直不是很擅長,因此有必要記錄一下。html
行定位符(^與$)正則表達式
行定位符是用來描述字符串的邊界。「$」表示行結尾「^」表示行開始如"^de",表示以de開頭的字符串 "de$",表示以de結尾的字符串。.net
單詞定界符code
咱們在查找的一個單詞的時候,如an是否在一個字符串」gril and body」中存在,很明顯若是匹配的話,an確定是能夠匹配字符串「gril and body」匹配到,怎樣才能讓其匹配單詞,而不是單詞的一部分呢?這時候,咱們能夠是喲個單詞定界符b。
banb 去匹配」gril and body」的話,就會提示匹配不到。
固然還有一個大寫的B,它的意思,和b正好相反,它匹配的字符串不能使一個完整的單詞,而是其餘單詞或字符串中的一部分。如BanB。htm
選擇字符(|) ,表示或對象
選擇字符表示或的意思。如Aa|aA,表示Aa或者是aA的意思。注意使用」[]」與」|」的區別,在於」[]」只能匹配單個字符,而」|」能夠匹配任意長度的字符串。在使用」[]」的時候,每每配合鏈接字符」-「一塊兒使用,如[a-d],表明a或b或c或d。blog
排除字符,排除操做utf-8
正則表達式提供了」^」來表示排除不符合的字符,^通常放在[]中。如1,該字符不是1~5之間的數字。unicode
限定符(?*+{n,m})字符串
限定符主要是用來限定每一個字符串出現的次數。
限定字符 | 含義 |
---|---|
? | 零次或一次 |
* | 零次或屢次 |
+ | 一次或屢次 |
{n} | n次 |
{n,} | 至少n次 |
{n,m} | n到m次 |
/x表示16進制
/u 表示按unicode(utf-8)匹配(主要針對多字節好比漢字)
/i 表示不區分大小寫(若是表達式裏面有 a, 那麼 A 也是匹配對象)
/s 表示將字符串視爲單行來匹配
必須只有中英文和數字
$match = "/^[\x{4e00}-\x{9fa5}A-Za-z0-9]+$/u"; if(!preg_match($match,$title)){ echo "含有中文,英文,數字之外的字符"; }else{ echo "只有中文,英文,數字之外的字符"; }
只需包含中英文和數字
$match = "/[\x{4e00}-\x{9fa5}A-Za-z0-9]/u"; if(!preg_match($match,$title)){ echo "不含有中文,英文,數字字符"; }else{ echo "含有中文,英文,數字字符"; }
參考文章:http://www.jb51.net/article/6...
http://www.cnblogs.com/helloh...