要理解?=和?!,首先需要理解前瞻,後顧,負前瞻,負後顧四個概念:
// 前瞻:
exp1(?=exp2) 查詢exp2前面的exp1
// 後顧:
(?<=exp2)exp1 查詢exp2後面的exp1
// 負前瞻:
exp1(?!exp2) 查詢後面不是exp2的exp1
// 負後顧:
(?"中國人".replace(/(?<=中國)人/, "rr") // 匹配中國人中的人,將其替換為rr,結果為 中國rr
"法國人".replace(/(?<=中國)人/, "rr") // 結果為 法國人,因為人前面不是中國,所以無法匹配到
要理解?:則需要理解捕獲分組和非捕獲分組的概念:
()表示捕獲分組,()會把每個分組裡的匹配的值儲存起來,使用$n(n是乙個數字,表示第n個捕獲組的內容)
(?:)表示非捕獲分組,和捕獲分組唯一的區別在於,非捕獲分組匹配的值不會儲存起來
舉例:
sql正規表示式 SQL中的正規表示式
sql正規表示式 sql中的正規表示式 sql的查詢語句中,有時會需要引進正規表示式為其複雜搜尋指定模式。下面給出一些 regexp 在mysql 語句中應用 非全部 1 匹配字串的開始部分。mysql select fo nfo regexp fo 0mysql select fofo regex...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...