Redis分散式鎖的正確實現方式
1.量詞
* |
匹配前面的子表示式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等價於{0,}。 |
+ |
匹配前面的子表示式一次或多次(大於等於1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等價於{1,}。 |
? |
匹配前面的子表示式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等價於{0,1}。 |
{n} |
n是一個非負整數。匹配確定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的兩個o。 |
{n,} |
n是一個非負整數。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等價於“o+”。“o{0,}”則等價於“o*”。 |
{n,m} |
m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”將匹配“fooooood”中的前三個o為一組,後三個o為一組。“o{0,1}”等價於“o?”。請注意在逗號和兩個數之間不能有空格。 |
範圍:
\d <=> [0-9]
[範圍]===》[a-z] [A-Za-z] ,[13579] [1-37-9]
[^範圍] ====》不在範圍內的 [^2-6]
| x|y == [xy]
()===>整體 1(3\d)|(8[13589])|(7[136])
例項:
1.判斷輸入的電腦號碼是否正確
電話號碼:<input type="text" name="tel" id="mytel" required="required"
placeholder="請輸入電話號碼" pattern="^(\+86)?1((3[0-9])|(5[0-9])|(7[135-8])|(8[0-35-9])|(9[17]))\d{8}$"/>
/*分析
1. +86可以出現一次或0次
2.號段:13[0-9],15[0-9],166,17[135-8],18[0-35-9],19[17]
3.\d{8}
/*
2.判斷郵箱是否輸入正確
分析:
1.開頭:[A-Za-z0-9]{5,16}
2.必須包含的符號:@
3.@後面跟的字元:[a-z0-9]{2,5}
4.(.com|.cn)
郵箱:<input type="email" id="mail" name="mail" required="required" placeholder="請輸入郵箱"
pattern="^[A-Za-z0-9]{5,16}@[a-z0-9]{2,5}\.((com)|(cn))$" title="請輸入正確的郵箱"
/>
3.判斷是否為非負整數
<input type="text" pattern="^0|[1-9]\d*$" />
4.判斷是否為整數
<input type="text" pattern="^-?([1-9]\d*)|0$"/>
注:上面只是個人見解,本人初學者,如有不足之處,還望各位大牛批評指正。