成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

正則表達式基本語法和常用的正則表達式

開發 前端
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。

 

正則表達式基本語法和常用的正則表達式

在線正則表達式測試:

概念

正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。

給定一個正則表達式和另一個字符串,我們可以達到如下的目的:

1. 給定的字符串是否符合正則表達式的過濾邏輯(稱作“匹配”);

2. 可以通過正則表達式,從字符串中獲取我們想要的特定部分。

正則表達式的特點是:

1. 靈活性、邏輯性和功能性非常的強;

2. 可以迅速地用極簡單的方式達到字符串的復雜控制。

正則表達式基本語法

兩個特殊的符號^和$。他們的作用是分別指出一個字符串的開始和結束。例子如下:

  • ^The:表示所有以”The”開始的字符串(”There”,”The cat”等);
  • of despair$:表示所以以”of despair”結尾的字符串;
  • ^abc$:表示開始和結尾都是”abc”的字符串——呵呵,只有”abc”自己了;
  • notice:表示任何包含”notice”的字符串。

像最后那個例子,如果你不使用兩個特殊字符,你就在表示要查找的串在被查找串的任意部分——你并不把它定位在某一個頂端。

其它還有*,+和?這三個符號,表示一個或一序列字符重復出現的次數。它們分別表示”沒有或更多”,”一次或更多”還有”沒有或一次”。下面是幾個例子:

  • ab*:表示一個字符串有一個a后面跟著零個或若干個b。(”a”, “ab”, “abbb”,……);
  • ab+:表示一個字符串有一個a后面跟著至少一個b或者更多;
  • ab?:表示一個字符串有一個a后面跟著零個或者一個b;
  • a?b+$:表示在字符串的末尾有零個或一個a跟著一個或幾個b。

你也可以使用范圍,用大括號括起,用以表示重復次數的范圍。

  • ab{2}:表示一個字符串有一個a跟著2個b(”abb”);
  • ab{2,}:表示一個字符串有一個a跟著至少2個b;
  • ab{3,5}:表示一個字符串有一個a跟著3到5個b。

請注意,你必須指定范圍的下限(如:{0,2}而不是{,2})。還有,你可能注意到了,*,+和?相當于{0,},{1,}和{0,1}。

還有一個|,表示“或”操作:

  • hi|hello:表示一個字符串里有”hi”或者”hello”;
  • (b|cd)ef:表示”bef”或”cdef”;
  • (a|b)*c:表示一串”a”“b”混合的字符串后面跟一個”c”;

.可以替代任何字符:

  • a.[0-9]:表示一個字符串有一個”a”后面跟著一個任意字符和一個數字;
  • ^.{3}$:表示有任意三個字符的字符串(長度為3個字符);

方括號表示某些字符允許在一個字符串中的某一特定位置出現:

  • [ab]:表示一個字符串有一個”a”或”b”(相當于a|b);
  • [a-d]:表示一個字符串包含小寫的’a’到’d’中的一個(相當于a|b|c|d或者[abcd]);
  • ^[a-zA-Z]:表示一個以字母開頭的字符串;
  • [0-9]%:表示一個百分號前有一位的數字;
  • ,[a-zA-Z0-9]$:表示一個字符串以一個逗號后面跟著一個字母或數字結束。

你也可以在方括號里用^表示不希望出現的字符,^應在方括號里的第一位。

(如:%[^a-zA-Z]%表示兩個百分號中不應該出現字母)。

為了逐字表達,你必須在^.$()|*+?{這些字符前加上轉移字符。

請注意在方括號中,不需要轉義字符。

一、校驗數字的表達式

1 數字:^[0-9]*$

2 n位的數字:^d{n}$

3 至少n位的數字:^d{n,}$

4 m-n位的數字:^d{m,n}$

5 零和非零開頭的數字:^(0|[1-9][0-9]*)$

6 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[0-9]{1,2})?$

7 帶1-2位小數的正數或負數:^(-)?d+(.d{1,2})?$

8 正數、負數、和小數:^(-|+)?d+(.d+)?$

9 有兩位小數的正實數:^[0-9]+(.[0-9]{2})?$

10 有1~3位小數的正實數:^[0-9]+(.[0-9]{1,3})?$

11 非零的正整數:^[1-9]d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$

12 非零的負整數:^-[1-9][]0-9"*$ 或 ^-[1-9]d*$

13 非負整數:^d+$ 或 ^[1-9]d*|0$

14 非正整數:^-[1-9]d*|0$ 或 ^((-d+)|(0+))$

15 非負浮點數:^d+(.d+)?$ 或 ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$

16 非正浮點數:^((-d+(.d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$

17 正浮點數:^[1-9]d*.d*|0.d*[1-9]d*$ 或 ^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$

18 負浮點數:^-([1-9]d*.d*|0.d*[1-9]d*)$ 或 ^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$

19 浮點數:^(-?d+)(.d+)?$ 或 ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$

二、校驗字符的表達式

1 漢字:^[\u4e00-\u9fa5]{0,}$

2 英文和數字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

3 長度為3-20的所有字符:^.{3,20}$

4 由26個英文字母組成的字符串:^[A-Za-z]+$

5 由26個大寫英文字母組成的字符串:^[A-Z]+$

6 由26個小寫英文字母組成的字符串:^[a-z]+$

7 由數字和26個英文字母組成的字符串:^[A-Za-z0-9]+$

8 由數字、26個英文字母或者下劃線組成的字符串:^w+$ 或 ^w{3,20}$

9 中文、英文、數字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$

10 中文、英文、數字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11 可以輸入含有^%&’,;=?$”等字符:[^%&',;=?$\x22]+

12 禁止輸入含有~的字符:[^~\x22]+

三、特殊需求表達式

1 Email地址:^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$

2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

3 InternetURL:[a-zA-z]+://[^s]* 或 ^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$

4 手機號碼:^(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{8}$

5 電話號碼:("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^((d{3,4}-)|d{3.4}-)?d{7,8}$

6 國內電話號碼:(0511-4405222、021-87888822):d{3}-d{8}|d{4}-d{7}

7 身份證號(15位、18位數字):^d{15}|d{18}$

8 短身份證號碼(數字、字母x結尾):^([0-9]){7,18}(x|X)?$ 或 ^d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

9 帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

10 密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-zA-Z]w{5,17}$

11 強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在8-10之間):^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

12 日期格式:^d{4}-d{1,2}-d{1,2}

13 一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$

14 一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$

15 錢的輸入格式:

16 1.有四種錢的表示形式我們可以接受:”10000.00” 和 “10,000.00”, 和沒有 “分” 的 “10000” 和 “10,000”:^[1-9][0-9]*$

17 2.這表示任意一個不以0開頭的數字,但是,這也意味著一個字符”0”不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$

18 3.一個0或者一個不以0開頭的數字.我們還可以允許開頭有一個負號:^(0|-?[1-9][0-9]*)$

19 4.這表示一個0或者一個可能為負的開頭不為0的數字.讓用戶以0開頭好了.把負號的也去掉,因為錢總不能是負的吧.下面我們要加的是說明可能的小數部分:^[0-9]+(.[0-9]+)?$

20 5.必須說明的是,小數點后面至少應該有1位數,所以”10.”是不通過的,但是 “10” 和 “10.2” 是通過的:^[0-9]+(.[0-9]{2})?$

21 6.這樣我們規定小數點后面必須有兩位,如果你認為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$

22 7.這樣就允許用戶只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$

23 8.1到3個數字,后面跟著任意個 逗號+3個數字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

24 備注:這就是最終結果了,別忘了”+”可以用”*”替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數時去掉去掉那個反斜杠,一般的錯誤都在這里

25 xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$

26 中文字符的正則表達式:[\u4e00-\u9fa5]

27 雙字節字符:[^\x00-\xff](包括漢字在內,可以用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1))

28 空白行的正則表達式: s* (可以用來刪除空白行)

29 HTML標記的正則表達式:<(S*?)[^>]*>.*?|<.*? /> (網上流傳的版本太糟糕,上面這個也僅僅能部分,對于復雜的嵌套標記依舊無能為力)

30 首尾空白字符的正則表達式:^s*|s*$或(^s*)|(s*$) (可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式)

31 騰訊QQ號:[1-9][0-9]{4,}(騰訊QQ號從10000開始)

32 中國郵政編碼:[1-9]d{5}(?!d) (中國郵政編碼為6位數字)

33 IP地址:d+.d+.d+.d+ (提取IP地址時有用)

34 校驗IP-v4地址\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b

35 校驗IP-v6地址

(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

 

 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2020-09-04 09:16:04

Python正則表達式虛擬機

2010-07-13 17:03:53

Perl正則表達式

2010-07-28 11:06:41

Flex正則表達式

2024-09-14 09:18:14

Python正則表達式

2009-06-24 11:24:23

JavaScript驗正則表達式

2017-05-12 10:47:45

Linux正則表達式程序基礎

2022-03-28 06:19:14

正則表達式開發

2009-02-18 09:48:20

正則表達式Java教程

2019-07-17 15:45:47

正則表達式字符串前端

2021-01-27 11:34:19

Python正則表達式字符串

2009-09-16 18:19:34

正則表達式組

2011-06-02 12:34:16

正則表達式

2010-03-25 18:25:36

Python正則表達式

2016-11-10 16:21:22

Java 正則表達式

2009-09-16 17:15:57

正則表達式引擎

2022-01-04 11:35:03

Linux Shel正則表達式Linux

2023-09-13 08:12:45

2021-07-14 23:54:01

正則表達式數據

2009-08-07 14:24:31

.NET正則表達式

2012-04-28 15:22:46

PHP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线色网| 欧美一级久久 | a视频在线观看 | 日韩图区 | 日本精品在线播放 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 日韩欧美在线视频 | 日韩av最新网址 | 99精品一区| 在线欧美视频 | 国产黄色麻豆视频 | 国产视频在线观看一区二区三区 | 91在线电影 | 美女黄频 | 麻豆av免费观看 | 日韩久久久一区二区 | 女同久久另类99精品国产 | 国产精品一区二区在线 | 日日淫 | 欧美一级免费观看 | 在线国产小视频 | 涩涩99| 免费爱爱视频 | 国产精品久久久亚洲 | 久久久久国产视频 | 日日噜噜噜夜夜爽爽狠狠视频97 | 亚洲成人毛片 | 国产网站在线播放 | 久久亚洲经典 | 全部免费毛片在线播放网站 | 亚洲精品第一国产综合野 | 国产精品久久av | 亚洲欧美综合 | 羞羞视频一区二区 | 久久亚洲国产精品 | 日韩不卡在线 | 精品久久影院 | 成人精品一区二区三区 | www.亚洲 | 伊人超碰 | 黄色一级大片在线观看 |