Perl是較為常見的兼容正則表達式函數,一般形式為(preg_)這也是本文主要介紹的。
學習正則無非學習 1.模式的編寫
2.正則+函數 = 強大的字符處理功能。
我們先了解基礎知識。
1.原子,聽名字就知道為字符串的最小單位。它包括兩種:
①可打印的字符,就是一般無特殊含義的字符。
②不可打印的字符,代表范圍:
\d:表示任意一個十進制數字
\D:表示任意一個數字之外的字符
\s:表示任意一個空白字符
\S:表示任意一個非空白字符
\w:a-zA-Z0-9
\W:除了a-zA-Z0-9之外的任意字符
(小提示:一般也就這幾個,記起來很容易,只要記得每個為其英文的縮寫(d為digital、s為word、s為space其含義也十分明了啦),且大寫的總是會和小寫的作對)
2.自定義原子表([])
[]字符類,匹配其中任何一個原子,一個方括號僅匹配一個字符
與其相反的[^]排除字符,排除方括號中任何一個字符
[-]表示一定范圍,例如:[a-z]表示a到z中任意一個字符
再了解幾種常見字符。
1.定界符(確定是正則而不是普通的字符串的符號)(| / ......)
定義:除字母、數字、正斜線\之外的任何符號都為定界符號,一般用反斜線(/)表示
形如:/tm/
2.點號字符(.)
可以匹配換行符外的任意一個字符。
一個題目可以很好的诠釋這種效果,寫出幾個以s開頭,t結尾的單詞。
/^s**t$/ /^s*t/ ......
3.限定符(?* + {n,m})
? :匹配前面字符0或1次
+ :匹配前面字符1或多次
* : 匹配前面字符0或多次
{n} : 匹配前面字符n次
{n,} : 匹配前面字符最少n次
{n,m} : 匹配前面字符最少n次,最多m次
4.選擇字符(|)
例如:/cat|dog/ 匹配貓或者狗
5.括號字符(())
()的功能有很多,其中有和函數一起使用時所產生的新的功能
1.提高優先級
2.作為大原子使用
3.最為子模式使用(\1取第一個子模式,\2取第二個模式...)
"\\1" '\1'