正則表示式/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\[email protected]#$]{
阿新 • • 發佈:2019-01-11
/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\[email protected]#$]{6,16}$/
表示長度為6-16位包含數字+字母,可以包含或不包含特殊符號的密碼
.表示匹配除"\n"(換行符)和"\r"(回車符)之外的任何單個字元。
*表示匹配前面的子表示式任意次。例如,zo*能匹配"z",也能匹配“zo”以及“zoo”。*等價於{0,}。
()表示將(和)之間的表示式定義為“組”(group),並且將匹配這個表示式的字元儲存到一個臨時區域(一個正在表示式中最多可以儲存9個),它們可以用\1和\9的符號來引用。
(?=pattern)表示費獲取匹配,正向肯定預查,在任何匹配pattern的字串開始匹配查詢字串,該匹配不需要獲取以後使用。例如,“window(?=95|98|XT|2000)”能匹配“window2000”中的“window”,但不能匹配“window3.1”中的“window”。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是包含預查的字元之後開始。
\W匹配任何非單詞字元,等價於"[^A-Za-z0-9]"
第一個括號裡面標識必須匹配到數字\d
第二個括號表示必須匹配到字母
第三個中括號表示字元集合,匹配所包含的任意一個字元。例如,‘[A-Za-z\[email protected]#$]’可以匹配“[email protected]#”中的"[email protected]#"
三個條件由()括號取和集同時成立
程式碼、語法 | 說明 |
\W | 匹配任意不是字母、數字、下劃線、漢字的字元 |
\S | 匹配任意不是空白符的字元 |
\D | 匹配任意非數字的字元 |
\B | 匹配不是單詞開頭或結束的位置 |
[^x] | 匹配除了x以外的任意字元 |
[^aeiou] | 匹配aeiou這幾個字母以外的任意字元 |
* | 重複0次或更多次 |
+ | 重複1次或更多次 |
? | 重複0次或1次 |
{n} | 重複n次 |
{n,} | 重複n次或更多次 |
{n,m} | 重複n到m次 |
(exp) | 匹配exp,並捕獲文字到自動命名的組裡 |
(?<name>exp) | 匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成(?'name'exp) |
(?:exp) | 匹配exp,不捕獲匹配的文字,也不給此分組分配組號 |
(?=exp) | 匹配exp前面的位置 |
(?!exp) | 匹配exp後面的位置 |
(?!exp) | 匹配後面不是exp的位置 |
(?<!exp) | 匹配前面不是exp的位置 |
(?#comment) | 這種型別的分組不對正則表示式的處理產生任何影響,用於提供註釋讓人閱讀 |
*? | 重複任意次,但儘可能少重複 |
+? | 重複1次貨更多次,但儘可能少重複 |
?? | 重複0次或1次,但儘可能少重複 |
{n,m}? | 重複n到m次,但儘可能少重複 |
{n,}? | 重複n次以上,但儘可能少重複 |
\a | 報警字元(列印它的效果是電腦嘀一聲) |
\b | 通常是單詞分界位置,但如果在字元類裡使用代表退格 |
\t | 製表符,Tab |
\r | 回車 |
\v | 豎向製表符 |
\f | 換頁符 |
\n | 換行符 |
\e | Escape |
\0nn | ASCII程式碼中八進位制程式碼為nn的字元 |
\xnn | ASCII程式碼中十六進位制程式碼為nn的字元 |
\unnnn | Unicode程式碼中十六進位制程式碼為nnnn的字元 |
\cN | ASCII控制字元。比如\cC代表Ctrl+C |
\A | 字串開頭(類似^,但不受處理多行選項的影響) |
\Z | 字串結尾或行尾(不受處理多行選項的影響) |
\z | 字串結尾(類似$,但不受處理多行選項的影響) |
\G | 當前搜尋的開頭 |
\p{name} | Unicode中命名為name的字元類,例如\p{IsGreek} |
(?>exp) | 貪婪子表示式 |
(?<x>-<y>exp) | 平衡組 |
(?im-nsx:exp) | 在子表示式exp中改變處理選項 |
(?im-nsx) | 為表示式後面的部分改變處理選項 |
(?(exp)yes|no) | 把exp當作零寬正向先行斷言,如果在這個位置能匹配,使用yes作為此組的表示式;否則使用no |
(?(exp)yes) | 同上,只是使用空表示式作為no |
(?(name)yes|no) | 如果命名為name的組捕獲到了內容,使用yes作為表示式;否則使用no |
(?(name)yes) | 同上,只是使用空表示式作為no |