/^正則表達式$/
參考:
https://www.runoob.com/regexp/regexp-syntax.html
https://studygolang.com/pkgdoc golang regex
https://regexr.com/ 正則在線檢測
非打印字符
字符 | 描述 |
---|---|
\n | 換行 |
\r | 回車 |
\t | 制表符 |
\s 小寫 | 匹配任何空白字符, 包括空格, 制表符, 換行 |
\S 大寫 | 匹配任何非空字符 |
特殊字符
字符 | 描述 |
---|---|
. | 匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用 \. 。 |
\ | 將下一個字符標記為或特殊字符、或原義字符、或向后引用、或八進制轉義符。例如, 'n' 匹配字符 'n'。'\n' 匹配換行符。序列 '\\' 匹配 "\" ,而'\(' 則匹配 "(" 。 |
| | 指明兩項之間的一個選擇(或)。要匹配 \, 請使用\| |
( ) | 標記一個子表達式的開始和結束位置。子表達式可以獲取供以后使用。要匹配這些字符,請使用 \( 和 \) 。 |
\w | [0-9A-Za-z_], 表示從 0 - 9 ,A - Z,a - z 中選出任意一個字符 |
\d | [0- 9] |
限定符
字符 | 描述 |
---|---|
* | 匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \* 。 |
+ | 匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+ 。 |
? | 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \? 。 |
[ ] | 標記一個中括號表達式的開始和結束位置。表示從該范圍中取任意一個值,要匹配這些字符,請使用 \[ 和 \] 。 |
{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{0,1}' 等價於 'o?'。請注意在逗號和兩個數之間不能有空格。 |
定位符
字符 | 描述 |
---|---|
^ | 匹配輸入字符串的開始位置,除非在方括號表達式中使用,當該符號在方括號表達式中使用時,表示不接受該方括號表達式中的字符集合。要匹配 ^ 字符本身,請使用 ^。 |
$ | 匹配輸入字符串的結尾位置。如果設置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,請使用 \$ 。 |
看一個$
的例子
如果沒有設置multiline
只能匹配后面沒有換行符的
例子:
郵箱正則:
-
qq郵箱
\d+@qq\.com
-
163郵箱
\w+@163\.com
-
通用規則
\w+@\w+\.\w+
電話正則:
-
通用規則
1[34578]\d{9}
身份證匹配:
-
通用規則
[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[\dXx]
區號[1-9]\d{5} 年(18|19|20|)\d{2} 月((0[1-9])|(1[0-2])) 日(([0-2][1-9])|10|20|30|31) 校驗碼\d{3}[\dXx] //[\dXx]表示從該范圍中取任意一字符
超鏈接:
-
通用規則
http(s)?://\w+\.\w+(\.\w+)?