日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式常用匹配方式

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式常用匹配方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符

表達式描述
[abc]字符集。匹配集合中所含的任一字符。
[^abc]否定字符集。匹配任何不在集合中的字符。
[a-z]字符范圍。匹配指定范圍內的任意字符。
.匹配除換行符以外的任何單個字符。
\轉義字符。
\w匹配任何字母數字,包括下劃線(等價于[A-Za-z0-9_])。
\W匹配任何非字母數字(等價于[^A-Za-z0-9_])。
\d數字。匹配任何數字。
\D非數字。匹配任何非數字字符。
\s空白。匹配任何空白字符,包括空格、制表符等。
\S非空白。匹配任何非空白字符。

分組和引用

表達式描述
(expression)分組。匹配括號里的整個表達式。
(?:expression)非捕獲分組。匹配括號里的整個字符串但不獲取匹配結果,拿不到分組引用。
\num對前面所匹配分組的引用。比如(\d)\1可以匹配兩個相同的數字,(Code)(Sheep)\1\2則可以匹配CodeSheepCodeSheep。

錨點/邊界

表達式描述
^匹配字符串或行開頭。
$匹配字符串或行結尾。
\b匹配單詞邊界。比如Sheep\b可以匹配CodeSheep末尾的Sheep,不能匹配CodeSheepCode中的Sheep。
\B匹配非單詞邊界。比如Code\B可以匹配HelloCodeSheep中的Code,不能匹配HelloCode中的Code。

數量表示

表達式描述
?匹配前面的表達式0個或1個。即表示可選項。
+匹配前面的表達式至少1個。
*匹配前面的表達式0個或多個。
|或運算符。并集,可以匹配符號前后的表達式。
{m}匹配前面的表達式m個。
{m,}匹配前面的表達式最少m個。
{m,n}匹配前面的表達式最少m個,最多n個。

預查斷言:

表達式描述
(?=)正向預查。比如Code(?=Sheep)能匹配CodeSheep中的Code,但不能匹配CodePig中的Code。
(?!)正向否定預查。比如Code(?!Sheep)不能匹配CodeSheep中的Code,但能匹配CodePig中的Code。
(?<=)反向預查。比如(?<=Code)Sheep能匹配CodeSheep中的Sheep,但不能匹配ReadSheep中的Sheep。
(?<!)反向否定預查。比如(?<!Code)Sheep不能匹配CodeSheep中的Sheep,但能匹配ReadSheep中的Sheep。

特殊標志

表達式描述
/.../i忽略大小寫。
/.../g全局匹配。
/.../m多行修飾符。用于多行匹配。

常用正則表達式示例

數字校驗

描述正則表達式備注
數字^[0-9]*$
n位數字^\d{n}$
至少n位數字^\d{n,}$
m~n位數字^\d{m,n}$
整數^(-?[1-9]\d*)$非0開頭,包括正整數和負整數
正整數^[1-9]\d*$
負整數^-[1-9]\d*$
非負整數^(([1-9]\d*)|0)$
非正整數^((-[1-9]\d*)|0)$
浮點數^-?(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0\.0+|0)$包括正浮點數和負浮點數
正浮點數^(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
負浮點數^-(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
非正浮點數^(?:-(?:[1-9]\d*\.\d+|0\.\d*[1-9]\d*)|0\.0+|0)$包含0
非負浮點數^(?:[1-9]\d*\.\d+|0\.\d+|0\.0+|0)$包含0
僅一位小數^-?(?:0|[1-9][0-9]*)\.[0-9]{1}$
最少一位小數^-?(?:0|[1-9][0-9]*)\.[0-9]{1,}$
最多兩位小數^-?(?:0|[1-9][0-9]*)\.[0-9]{1,2}$
連續重復的數字^(\d)\1+$例如:111,222

字符校驗

描述正則表達式備注
中文^[\u4E00-\u9FA5]+$
全角字符^[\uFF00-\uFFFF]+$
半角字符^[\u0000-\u00FF]+$
英文字符串(大寫)^[A-Z]+$
英文字符串(小寫)^[a-z]+$
英文字符串(不區分大小寫)^[A-Za-z]+$
中文和數字^(?:[\u4E00-\u9FA5]{0,}|\d)+$
英文和數字^[A-Za-z0-9]+$
數字、英文字母或者下劃線組成的字符串^\w+$
中文、英文、數字包括下劃線^[\u4E00-\u9FA5\w]+$
不含字母的字符串^[^A-Za-z]*$
連續重復的字符串^(.)\1+$例如:aaa,bbb
長度為n的字符串^.{n}$
ASCII^[ -~]$

日期和時間校驗

描述正則表達式備注
日期^\d{1,4}-(?:1[0-2]|0?[1-9])-(?:0?[1-9]|[1-2]\d|30|31)$弱校驗,例如:2022-06-12
日期^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$嚴格校驗,考慮平閏年
時間^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$12小時制,例如:11:21:31
時間^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$24小時制,例如:23:21:31
日期+時間^(\d{1,4}-(?:1[0-2]|0?[1-9])-(?:0?[1-9]|[1-2]\d|30|31)) ((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d)$例如:2000-11-11 23:20:21

日常生活相關

描述正則表達式備注
中文名^[\u4E00-\u9FA5·]{2,16}$
英文名^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$
車牌號^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9掛學警港澳]$不含新能源
車牌號^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領][A-HJ-NP-Z](?:(?:[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9掛學警港澳])|(?:(?:\d{5}[A-HJK])|(?:[A-HJK][A-HJ-NP-Z0-9][0-9]{4})))$包含新能源
火車車次^[GCDZTSPKXLY1-9]\d{1,4}$例如:G1234
手機號^(?:(?:\+|00)86)?1[3-9]\d{9}$弱匹配
手機號^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$嚴格匹配
固話號碼^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$
手機IMEI碼^\d{15,17}$一般是15位
郵編^(?:0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$例如:211100
統一社會信用代碼^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$
身份證號碼(1代)^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$15位數字
身份證號碼(2代)^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[0-9Xx]$18位數字
QQ號^[1-9][0-9]{4,}$一般是5到10位
微信號^[a-zA-Z][-_a-zA-Z0-9]{5,19}$一般6~20位,字母開頭,可包含字母、數字、-、_,不含特殊字符
股票代碼^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$A股,例如:600519
銀行卡卡號^[1-9]{1}(?:\d{15}|\d{18})$一般為19位

互聯網相關

描述正則表達式備注
域名^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$例如:r2coding.com
網址^(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$例如:Road 2 Coding
帶端口號的網址(或IP)^(?:https?:\/\/)?[\w-]+(?:\.[\w-]+)+:\d{1,5}\/?$例如:http://127.0.0.1:8888/
URL^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)$例如:Road 2 Coding
郵箱email^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$支持中文,例如:codesheep@cs.com
用戶名^[a-zA-Z0-9_-]{4,20}$4到20位
弱密碼^[\w]{6,16}$6~16位,包含大小寫字母和數字的組合
強密碼^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@\.#$%^&*? ]).*$至少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符
端口號^(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$例如:65535
IPv4地址^(?:(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$例如:192.168.31.1
IPv4地址+端口^(?:(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$例如:192.168.31.1:8080
IPv6地址^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$例如:CDCD:910A:2222:5498:8475:1111:3900:2020
IPv6地址+端口^\[(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$例如:[CDCD:910A:2222:5498:8475:1111:3900:2020]:9800
子網掩碼^(?:254|252|248|240|224|192|128)\.0\.0\.0|255\.(?:254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(?:254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(?:255|254|252|248|240|224|192|128|0)$例如:255.255.255.0
MAC地址^(?:(?:[a-f0-9A-F]{2}:){5}|(?:[a-f0-9A-F]{2}-){5})[a-f0-9A-F]{2}$
Version版本號^\d+(?:\.\d+){2}$例如:12.1.1
圖片后綴\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)+可按需增刪擴展名集合
視頻后綴\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)+可按需增刪擴展名集合
圖片鏈接(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)可按需增刪擴展名集合
視頻鏈接(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)可按需增刪擴展名集合
迅雷鏈接thunderx?:\/\/[a-zA-Z\d]+=
ed2k鏈接ed2k:\/\/\|file\|.+\|\/
磁力鏈接magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*

其他

描述正則表達式備注
Windows文件路徑^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+[.\w\u4E00-\u9FA5\s]+$例如:C:\Users\Administrator\Desktop\a.txt
Windows文件夾路徑^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+$例如:C:\Users\Administrator\Desktop
Linux文件路徑^\/(?:[^/]+\/)*[^/]+$例如:/root/library/a.txt
Linux文件夾路徑^\/(?:[^/]+\/)*$例如:/root/library/
MD5格式^(?:[a-f\d]{32}|[A-F\d]{32})$32位MD5,例如:7552E7071B118CBFFEC8C930455B4297
BASE64格式^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$例如:data:image/jpeg;base64,xxxx==
UUID^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$例如:94f9d45a-71b0-4b3c-b69d-20c4bc9c8fdd
16進制^[A-Fa-f0-9]+$例如:FFFFFF
16進制顏色^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$例如:#FFFFFF
SQL語句^(?:select|drop|delete|create|update|insert).*$
Java包名^(?:[a-zA-Z_]\w*)+(?:[.][a-zA-Z_]\w*)+$例如:com.r2coding.controller
文件擴展名\.(?:doc|pdf|txt)可按需增刪擴展名集合
HTML標簽<(\w+)[^>]*>(.*?<\/\1>)?例如:<div class="navigator"></div>
HTML注釋<!--(.*?)-->例如:<!--注釋-->

總結

以上是生活随笔為你收集整理的正则表达式常用匹配方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。