狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

正則別光想著抄,看懂用法下次你也會(huì)寫

freeflydom
2023年6月27日 10:25 本文熱度 540

校驗(yàn)字符串是否包含大小寫字母+數(shù)字+特殊字符,并且長度為8-12。

如果想要使用單個(gè)正則表達(dá)式就解決上述問題,就需要稍微學(xué)習(xí)一下正則的一些高級(jí)用法了。

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\d!@#$%^&*()_+]{8,12}$

先行斷言(預(yù)搜索)

先行斷言中不會(huì)獲取任何內(nèi)容,只是做一次篩查

  • 正向先行 指在某個(gè)位置向右看,該位置必須能匹配該表達(dá)式(?=表達(dá)式)。

  • 反向先行 指在某個(gè)位置往右看,該位置保證不能出現(xiàn)的表達(dá)式。

  • 正向后行 指在某個(gè)位置向左看,該位置必須能匹配該表達(dá)式,但不會(huì)獲取表達(dá)式的內(nèi)容(?<=表達(dá)式)

  • 反向后行 指在某個(gè)位置往左看,該位置保證不能出現(xiàn)的表達(dá)式(?<!表達(dá)式)


這個(gè)正則表達(dá)式使用了正向先行斷言來同時(shí)檢查字符串中是否包含大小寫字母、數(shù)字和特殊符號(hào)。它的含義如下:

  • ^:匹配字符串的開頭。

  • (?=.*[a-z]):正向先行斷言,要求字符串中至少包含一個(gè)小寫字母。

  • (?=.*[A-Z]):正向先行斷言,要求字符串中至少包含一個(gè)大寫字母。

  • (?=.*\d):正向先行斷言,要求字符串中至少包含一個(gè)數(shù)字。

  • (?=.*[!@#$%^&*()_+]):正向先行斷言,要求字符串中至少包含一個(gè)特殊符號(hào)(這里列出了一些常見的特殊符號(hào),你可以根據(jù)需要添加或修改)。

  • [a-zA-Z\d!@#$%^&*()_+]:匹配允許的字符集合,包括大小寫字母、數(shù)字和特殊符號(hào)。

  • {8,12}:限定字符串的長度在 8 到 12 位之間。

  • $:匹配字符串的結(jié)尾。

使用這個(gè)正則表達(dá)式可以對(duì)目標(biāo)字符串進(jìn)行檢查,判斷是否滿足包含大小寫、數(shù)字和特殊符號(hào),并且長度為 8 到 12 位的要求。例如:

let regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[a-zA-Z\d!@#$%^&*()_+]{8,12}$/;

let str = "Password123!";

let isMatch = regex.test(str);

console.log(isMatch); // 輸出: true

獲取ip地址

當(dāng)處理日志文件時(shí),有時(shí)需要從日志文本中提取特定的信息。一個(gè)常見的場(chǎng)景是提取日志中的 IP 地址。

假設(shè)我們有一個(gè)日志文件,其中包含了多行日志記錄,每行記錄的格式如下:

[2023-06-26 10:15:25] [INFO] Access from IP: 192.168.0.1 to URL: /home

在上述示例中,我們使用 match 方法來執(zhí)行正則表達(dá)式匹配,并將匹配的結(jié)果存儲(chǔ)在 match 變量中。如果有匹配結(jié)果,我們可以從數(shù)組中取得第一個(gè)元素 match[0],即提取到的 IP 地址。

let logText = "[2023-06-26 10:15:25] [INFO] Access from IP: 192.168.0.1 to URL: /home";

let regex = /\b(?:\d{1,3}\.){3}\d{1,3}\b/;

let match = logText.match(regex);

if (match) {

  let ipAddress = match[0];

  console.log(ipAddress); // 輸出: 192.168.0.1

} else {

  console.log("No IP address found.");

}

非捕獲型分組

非捕獲型分組是正則表達(dá)式中的一種分組語法,用于對(duì)一組子表達(dá)式進(jìn)行邏輯組合,但不會(huì)捕獲匹配的結(jié)果。它以 (?: 開始,并以 ) 結(jié)束。

/\b(?:\d{1,3}\.){3}\d{1,3}\b/

解釋一下這個(gè)正則表達(dá)式:

  • \b:單詞邊界,用于確保 IP 地址被完整匹配。

  • (?:\d{1,3}\.){3}:非捕獲型分組,匹配由 1 到 3 個(gè)數(shù)字和一個(gè)點(diǎn)組成的序列,重復(fù)匹配 3 次,用于匹配 IP 地址的前三個(gè)數(shù)字和點(diǎn)的部分。

  • \d{1,3}:匹配由 1 到 3 個(gè)數(shù)字組成的序列,用于匹配 IP 地址的最后一個(gè)數(shù)字。

  • \b:單詞邊界,用于確保 IP 地址被完整匹配。


原文鏈接



該文章在 2023/6/27 10:25:31 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved