正規表示式小結篇
正規表示式就是由普通字元(例如字元 a 到 z)以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查詢文字主體時待匹配的一個或多個字串。正規表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。
下面小編給大家總結了些關於正規表示式知識點,具體內容如下所示:
1、元字元
[擁有特殊含義的元字元]
\d -> 匹配一個0-9的數字,相當於[0-9],和它相反的是\D ->匹配一個除了0-9的任意字元
\w -> 匹配一個0-9、a-z、A-Z、_的數字或字元,相當於[0-9a-zA-Z_]
\s -> 匹配一個空白字元(空格、製表符...)
\b -> 匹配一個單詞的邊界
\t -> 匹配一個製表符
\n -> 匹配一個換行
. -> 匹配一個除了\n以外的任意字元
^ -> 以某一個元字元開頭
$ -> 以某一個元字元結尾
\ -> 轉移字元
x|y -> x或者y的一個
[xyz] -> x、y、z中的任意一個
[^xyz] -> 除了xyz中的任意一個字元
[a-z] -> 匹配a-z中的任意一個字元
[^a-z] -> 匹配除了a-z中的任意一個字元
() -> 正則中的分組
注意:
1)關於[]
a、[+] ->中括號中出現的所有字元都代表的是本身的意思
b、[12-65] ->這個不是12-65而是1/2-6/5三者中的一個
2)關於()
a、分組的作用是改變預設的優先順序,例如:/^18|19$/,181、189、119、819、1819...都符合,而不是我們認為的18或19,但是改成/^(18|19)$/就是單純的18或19了
b、可以在捕獲大正則匹配的內容同時,把分組匹配的內容也進行捕獲->分組捕獲
c、分組引用,例如:/^(\d)(\w)\2\1$/,這裡的\2是和第二個分組出現一模樣的內容,\1是和第一個分組出現一模一樣的內容,例如:"0aa0"就符合了
[代表數量的量詞元字元]
* -> 0到多個
+ -> 1到多個
? -> 0到1個
{n} -> 出現n次
{n,} -> 出現n到多次
{n,m} -> 出現n到m次
注意:
1)關於?的幾種情況
a、放在非量詞元字元後面,代表出現0-1次
b、放在量詞元字元後面,代表取消捕獲時候的貪婪性,例如:reg=/\d+/; reg.exec("2015") -> "2015" 但是如果正則這樣寫 reg=/\d+?/; reg.exec("2015") -> "2"
c、在分組開頭加?:,代表當前的分組只是匹配不進行捕獲,例如:/^(?:\d+)$/
d、在分組開頭加?=,正向預查,例如:/^abcdef(?=1|2)$/ 只有"abcdef1"和"abcdef2"才符合
e、在分組開頭加?!,負向預查,例如:/^abcdef(?!1|2)$/ 除了"abcdef1"和"abcdef2"不符合,其他的只要是"abcdef(任何的東西)"都符合
[代表本身意思的元字元]
除了以上的,在字面量方式中,我們出現的其他任意字元代表的都是自己本身的意思
var num=12;
var reg=/^\w"+num+"$/; ->這裡"+num+"不是把變數的值拼接,而這裡的不管是"還是+都是元字元
->對於需要拼接字串和變數的方式我們只能使用例項方式建立正則
2、修飾符
i -> ignoreCase 忽略字母的大小寫
g -> global 全域性匹配 (加上g可以解決正則捕獲時候的懶惰性)
m -> multiline 多行匹配
3、專案中常用的正則
1)有效數字的
var reg=/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;
2)郵箱的
var reg = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
3)電話的
var reg = /^1\d{10}$/;
4)年齡在18-65之間的
4)年齡在18-65之間的
5)中文姓名
var reg = /^[\u4e00-\u9fa5]{2,4}$/;
6)身份證
var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(?:\d{2})(\d)(?:\d|X)$/; //-> 12828(省市縣) 1990(年) 12(月) 04(日) 06 1(奇數是男偶數是女) 7(數字或者X)
4、正則的匹配
reg.test([string]) ->true就是匹配成功 false->匹配不成功
5、正則的捕獲
1)reg.exec([string])
-> 首先去匹配,匹配成功在捕獲,返回的是一個陣列; 如果匹配不成功返回的是null;
-> 正則的捕獲即懶惰又貪婪
-> 解決懶惰性 在正則的末尾增加全域性修飾符g
-> 解決貪婪性 在量詞後面加?
以上所述是小編給大家介紹的正規表示式小結篇,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015103/viewspace-2871598/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 正規表示式總結
- 匹配小數正規表示式
- JS正規表示式總結JS
- Java正規表示式總結Java
- 常用正規表示式總結
- 提取超連結正規表示式
- 正規表示式
- 正規表示式.
- python正規表示式 小例幾則Python
- php之正規表示式函式總結PHP函式
- 正規表示式中 “$” 並不是表示 “字串結束字串
- 還不會正規表示式?看這篇!
- 正規表示式系列之中級進階篇
- 正規表示式系列之初級入門篇
- 匹配磁力連結的正規表示式
- 超簡單!正規表示式總結
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- 常用正規表示式
- JavaScript 正規表示式JavaScript
- MySQL正規表示式MySql
- 正規表示式(java)Java
- SQL正規表示式SQL
- python正規表示式Python
- 正規表示式合集
- 正規表示式(一)
- Python 正規表示式Python
- Python——正規表示式Python
- PHP正規表示式PHP
- 正規表示式概括
- javascript正規表示式JavaScript
- java正規表示式Java
- Shell正規表示式
- 正規表示式 教程
- 正規表示式 【四】
- 正規表示式匹配
- Python:正規表示式Python
- php –正規表示式PHP
- 【Linux】正規表示式Linux