- ? 表示前面的字符可選。
- +表示一個或多個。
- *表示0個或多個。
- [] 字符組或字符集 匹配方括號里限定的字符集。字符組簡寫式 \d=[0-9] 匹配任意阿拉伯數(shù)字。
- \D =[^0-9]匹配任意的非數(shù)字字符 。
- \w 這個簡寫式將匹配所有的單詞字符。\D與\w的區(qū)別是\D會匹配空格、標點符號(引號、連字符、反斜杠、方括號)等字符,而\w卻不會,它只匹配字母、數(shù)字和下劃線。等同于字符組[_a-zA-Z0-9]。
- \W 匹配非單詞字符,匹配空格、標點以及其他非字母、非數(shù)字字符。等同于字符組[^_a-zA-Z0-9]
- \s 匹配空白字符=[????\t\n\r]它會匹配:
?空格 ?制表符(\t) ?換行符(\n) ?回車符(\r) - \S 匹配非空白字符
- .英文句號,是一個通配符可以匹配任意字符(但某些情況下不能匹配行起始符)。
- {} 包含數(shù)字的花括號是一種量詞(quantifier)。花括號本身用做元字符。表示字符出現(xiàn)的次數(shù)。
- ^ 脫字符,表示匹配的字符串會出現(xiàn)在一行的起始位置。
- $ 美元符$匹配一行結(jié)束位置。
- () 一對圓括號表示捕獲分組。
- \1 表示后向引用。
例如先將一個\d放在一對圓括號中,這樣就將它放入了一個分組中,
后面可以用\1來對捕獲的內(nèi)容進行后向引用:
(\d)\d\1
\1對括號內(nèi)分組捕獲的內(nèi)容進行了反向引用。例如這個正則表達式可以匹配707,而不能匹配706。
例子
1、(\d{3}[.-]?){2}\d{4}
這個表達式匹配的字符串是連續(xù)兩個無括號的三位數(shù)字,每三位數(shù)字后可以帶連字符也可以不帶,最后是一個四位數(shù)字
2、((\d{3})|\d{3}[.-]?)?\d{3}[.-]?\d{4}$
- 出現(xiàn)在正則表達式起始位置或者豎線(|)之后的脫字符^,表示匹配的字符串會出現(xiàn)在一行的起始位置;
- 左括號(為捕獲分組的起始符;
- (表示左括號本身;
- \d匹配一位數(shù)字;
- \d之后的{3}是量詞,表示匹配三位數(shù)字;
- )匹配右括號本身
- 豎線符|表示選擇,也就是從多個可選項中選擇一個,換句話說,
它表示“匹配一個不帶括號的字符串或一個帶括號的字符串”; - 脫字符^匹配行起始位置;
- \d匹配一位數(shù)字;
- {3}是表示匹配三位數(shù)字的量詞;
- [.-]?匹配一個可選的點號或連字符;
- 右括號)為捕獲分組的結(jié)束符;
- 問號?表示分組可選,即分組中的前綴可有可無;
- \d匹配一位數(shù)字;
- {3}表示匹配三位數(shù)字的量詞;
- [.-]?匹配另一個可選的點號或連字符;
- \d匹配一位數(shù)字;
- {4}是表示匹配四位數(shù)字的量詞;
- 美元符$匹配行結(jié)束位置。