前言
本文已收錄于PHP全棧系列專欄:PHP快速入門與實(shí)戰(zhàn)
一、正則表達(dá)式介紹
正則表達(dá)式(Regular Expression)是一種字符序列,用于描述一組字符串匹配某個(gè)模式或格式。
它由一些特殊的字符和普通字符組成,可以表示一些特定的文本模式,如手機(jī)號碼、郵箱、網(wǎng)址等等。正則表達(dá)式在很多程序設(shè)計(jì)語言中都得到了廣泛應(yīng)用,如Python、Java、C++等等。合理的使用正則表達(dá)式往往會使我們的效率事半功倍。
常用的正則表達(dá)式元字符包括:
- ^:表示匹配字符的開頭。
- $:表示匹配字符的結(jié)尾。
- *:表示匹配前面的字符出現(xiàn)任意次數(shù)。
- +:表示匹配前面的字符出現(xiàn)至少一次。
- ?:表示匹配前面的字符出現(xiàn)零次或一次。
- .:表示匹配任意一個(gè)字符。
- []:表示匹配方括號內(nèi)的某個(gè)字符。
- ():表示將其中的表達(dá)式作為一個(gè)整體來匹配。
例如,使用正則表達(dá)式“\d{11}”可以匹配11位的數(shù)字串,即手機(jī)號碼。
正則表達(dá)式雖然非常強(qiáng)大,但也有其缺點(diǎn),即復(fù)雜度較高,難以閱讀和維護(hù),因此需要慎重使用。
二、正則高頻案例20個(gè)
在編程中,正則表達(dá)式經(jīng)常被用來處理文本數(shù)據(jù),如驗(yàn)證用戶輸入、搜索字符串、替換文本等。
以下是使用 PHP 編寫的 20 個(gè)正則表達(dá)式示例:文章來源:http://www.zghlxwxcb.cn/news/detail-416221.html
2.1 檢查字符串是否以字母開頭
if (preg_match('/^[a-zA-Z]/', $string)) {
echo "First character is a letter";
} else {
echo "First character is not a letter";
}
2.2 檢查字符串是否以數(shù)字開頭
if (preg_match('/^[0-9]/', $string)) {
echo "First character is a number";
} else {
echo "First character is not a number";
}
2.3 檢查字符串是否包含特定字符
if (preg_match('/[aeiou]/', $string)) {
echo "String contains a vowel";
} else {
echo "String does not contain a vowel";
}
2.4 檢查字符串是否以特定字符結(jié)尾
if (preg_match('/[.]$/', $string)) {
echo "String ends with a period";
} else {
echo "String does not end with a period";
}
2.5 檢查字符串是否為純數(shù)字
if (preg_match('/^[0-9]+$/', $string)) {
echo "String is all digits";
} else {
echo "String is not all digits";
}
2.6 檢查字符串是否為純字母
if (preg_match('/^[a-zA-Z]+$/', $string)) {
echo "String is all letters";
} else {
echo "String is not all letters";
}
2.7 檢查字符串是否為有效的電子郵件地址
if (preg_match('/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/', $string)) {
echo "String is a valid email";
} else {
echo "String is not a valid email";
}
2.8 檢查字符串是否為有效的 URL
if (preg_match('/^(http|https):\/\/[a-z0-9\-]+\.[a-z0-9\-]+(\/[a-z0-9\-._~:?#\[\]@!$&\'()*+,;=%]*)?$/i', $string)) {
echo "String is a valid URL";
} else {
echo "String is not a valid URL";
}
2.9 檢查字符串是否為有效的 IP 地址
if (preg_match('/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', $string)) {
echo "String is a valid IP address";
} else {
echo "String is not a valid IP address";
}
2.10 檢查字符串是否為有效的日期格式
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $string)) {
echo "String is a valid date";
} else {
echo "String is not a valid date";
}
2.11 檢查字符串是否為有效的時(shí)間格式
if (preg_match('/^(0?[1-9]|1[0-2]):[0-5][0-9] (am|pm)$/i', $string)) {
echo "String is a valid time";
} else {
echo "String is not a valid time";
}
2.12 檢查字符串是否為有效的電話號碼
if (preg_match('/^\+?\d{1,3}?[- .]?\(?\d{3}\)?[- .]?\d{3}[- .]?\d{4}$/', $string)) {
echo "String is a valid phone number";
} else {
echo "String is not a valid phone number";
}
2.13 檢查字符串是否包含至少一個(gè)字母和一個(gè)數(shù)字
if (preg_match('/(?=.*[a-zA-Z])(?=.*[0-9])/', $string)) {
echo "String contains at least one letter and one number";
} else {
echo "String does not contain at least one letter and one number";
}
2.14 檢查字符串是否為有效的郵政編碼
if (preg_match('/^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/', $string)) {
echo "String is a valid postal code";
} else {
echo "String is not a valid postal code";
}
2.15 檢查字符串是否為有效的貨幣格式
if (preg_match('/^\$?\d+(\.\d{1,2})?$/', $string)) {
echo "String is a valid currency";
} else {
echo "String is not a valid currency";
}
2.16 檢查字符串是否包含至少一個(gè)大寫字母和一個(gè)小寫字母
if (preg_match('/(?=.*[a-z])(?=.*[A-Z])/', $string)) {
echo "String contains at least one lower case letter and one upper case letter";
} else {
echo "String does not contain at least one lower case letter and one upper case letter";
}
2.17 檢查字符串是否為有效的車牌號碼
if (preg_match('/^(京|津|滬|渝|冀|豫|云|遼|黑|湘|皖|魯|新|蘇|浙|贛|鄂|桂|甘|晉|蒙|陜|吉|閩|貴|粵|青|藏|川|寧|瓊)([A-HJ-NP-Z])([A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9掛學(xué)警港澳]{1})$/', $string)) {
echo "String is a valid license plate number";
} else {
echo "String is not a valid license plate number";
}
2.18 檢查字符串是否為有效的身份證號碼
if (preg_match('/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9xX]$/', $string)) {
echo "String is a valid ID card number";
} else {
echo "String is not a valid ID card number";
}
2.19 檢查字符串是否包含至少一個(gè)非字母和數(shù)字字符
if (preg_match('/\W/', $string)) {
echo "String contains at least one non-letter and non-number character";
} else {
echo "String does not contain at least one non-letter and non-number character";
}
2.20 檢查字符串是否為有效的 HTML 標(biāo)簽
if (preg_match('/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/', $string)) {
echo "String is a valid HTML tag";
} else {
echo "String is not a valid HTML tag";
}
總結(jié)
以上就是關(guān)于本篇文章介紹的內(nèi)容,正則相關(guān),附一定要學(xué)會的20個(gè)高頻使用案例,后續(xù)更多內(nèi)容將收錄在專欄PHP快速入門與實(shí)戰(zhàn)中,感謝大家支持。文章來源地址http://www.zghlxwxcb.cn/news/detail-416221.html
到了這里,關(guān)于PHP快速入門09-正則相關(guān),附一定要學(xué)會的20個(gè)高頻使用案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!