1. 程式人生 > >學會正則表示式讓你的程式設計如虎添翼

學會正則表示式讓你的程式設計如虎添翼

本次我們要討論的專案是正則表示式。很多小夥伴會困惑:正則表示式是專案嗎?你要是問出這樣的問題,說明你太輕視正則表示式啦。學會正則表示式,你的程式設計之路如虎添翼,這麼說一點都不誇張。

什麼是正則表示式?

正則表示式,又稱規則表示式(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表通常被用來檢索、替換那些符合某個模式(規則)的文字。

正則表示式是由普通字元(例如字元 a 到 z)以及特殊字元(稱為"元字元")組成的文字模式。模式描述在搜尋文字時要匹配的一個或多個字串。正則表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。

正則表示式教程

1,正則表示式10分鐘入門教程:

http://blog.csdn.net/gusgao/article/details/48434685

2,正則表示式教程:

http://www.runoob.com/regexp/regexp-syntax.html

正則表示式測試網站:

http://tool.oschina.net/regex/

這20個正則表示式,讓你少寫1,000行程式碼
來自:技匠(簡書籤約作者)

正則表示式——古老而又強大的文字處理工具。僅用一段簡短的表示式語句,就能快速地實現一個複雜的業務邏輯。掌握正則表示式,讓你的開發效率有一個質的飛躍。

正則表示式經常被用於欄位或任意字串的校驗,比如下面這段校驗基本日期格式的JavaScript程式碼:

var reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/; 
var r = fieldValue.match(reg);             
if(r==null)alert('Date format error!');

1、校驗密碼強度

密碼的強度必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間

^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

2、校驗中文

字串只能是中文

^[\\u4e00-\\u9fa5]{0,}$

3、由數字,26個英文字母或下劃線組成的字串

^\\w+$

4、校驗E-Mail 地址

[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?

5、校驗身份證號碼

15位:

^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$

18位:

^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$

6、校驗日期

“yyyy-mm-dd“ 格式的日期校驗,已考慮平閏年

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

7、校驗金額

金額校驗,精確到2位小數

^[0-9]+(.[0-9]{2})?$

8、校驗手機號

下面是國內 13、15、18開頭的手機號正則表示式

^(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}$

9、判斷IE的版本

^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$

10、校驗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

11、校驗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]))

12、檢查URL的字首

if (!s.match(/^[a-zA-Z]+:\\/\\//)){   s = 'http://' + s;}

13、提取URL連結

^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?

14、檔案路徑及副檔名校驗

^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$

15、提取Color Hex  Codes

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

16、提取網頁圖片

\\< *[img][^\\\\>]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)

17、提取頁面超連結

(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^"]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>

18、查詢CSS屬性

^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}

19、抽取註釋

<!--(.*?)-->

20、匹配HTML標籤

<\\/?\\w+((\\s+\\w+(\\s*=\\s*(?:".*?"|'.*?'|[\\^'">\\s]+))?)+\\s*|\\s*)\\/?>

相關推薦

學會表示式程式設計如虎添翼

本次我們要討論的專案是正則表示式。很多小夥伴會困惑:正則表示式是專案嗎?你要是問出這樣的問題,說明你太輕視正則表示式啦。學會正則表示式,你的程式設計之路如虎添翼,這麼說一點都不誇張。 什麼是正則表示式? 正則表示式,又稱規則表示式。(英語:Regular Express

1小時教學會表示式

想必很多人都對正則表示式都頭疼.今天,我以我的認識,加上網上一些文章,希望用常人都可以理解的表達方式.來和大家分享學習經驗.  開篇,還是得說說 ^ 和 $ 他們是分別用來匹配字串的開始和結束,以下分別舉例說明   "^The": 開頭一定要有"The"字串;   "of despair$": 結尾一定要有"

想要玩爬蟲!表示式的必修課程!這篇足以玩轉爬蟲了!

python 3.x 爬蟲基礎 python 3.x 爬蟲基礎---http headers詳解 python 3.x 爬蟲基礎---Urllib詳解 python 3.x 爬蟲基礎---Requersts,BeautifulSoup4(bs4) python 3.x 爬蟲基礎---

MSSQL 表示式在資料庫程式設計中使用,其實真的不懂SQL了

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                一直以為單純的查詢分析資料表,基本上都OK。今天遇到一位朋友提出。郵件地址欄位,去掉163,sina,china感覺很簡單,不就是like not like 

學會表示式,玩弄文字於股掌之中

1950 年, 一位叫 斯蒂芬·科爾·克萊尼的數學家發表了一篇標題為《神經網事件的表示法》的論文,引入了正則表示式的概念。正則表示式就是用來描述他稱為"正則集的代數"的表示式,因此採用"正則表示式"這個術語。 隨後,肯·湯普遜將這一符號系統引入 Unix 中的

為什麼要學會表示式

  一直以來,我都認為能手寫正則表示式的人都是大神,至少不會是坑。正則表示式這個知識領域,在各種語言中被大神們運用的淋漓盡致。作為一個菜雞程式設計師,向大神看齊的最簡單的方式就是寫一手簡單粗暴的正則表示式。   正則表示式是幹什麼的呢?   舉個最簡單的例子,今天下午的時候測試人員給我提了一個bug,並且打上

十分鐘學會表示式

1、正則表示式 正則表示式(regular expression)描述了一種字串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。 模式:使用一種特殊符號來實現字串的匹配 2、建立正則物件 ①隱式建立 var 正則物件

願意給我五分鐘,我帶掌握表示式嗎?爬蟲必會知識點!

今天小編給大家分享的是Python正則表示式的簡單應用和示例演示,將前面學習的Python正則表示式做一個概括。       進群:548377875  即可獲取大量的零基礎學習資料以及從零基礎到專案實戰的PDF一套哦! &nb

事半功倍的表示式

正則表示式是一個古老但卻非常強大的文字處理工具,熟練掌握正則表示式的用法,能夠使你的開發效率得到極大的提升。在正則表示式(請戳我)系列5篇中很詳細介紹了正則表示式的用法。 本文則是整理在前端開發中經常使用到的一些正則表示式,當然不只前端的同學有用,這些正則對於大多數開發人員都有用武之地。若有不理

表示式技能提升的方法 持續更新

練習網址:https://alf.nu/RegexGolf 有喜歡正則表示式的朋友可以一起學習。。。 明確指定字串匹配 只輸入一個確定的字串,那麼將會完全匹配該字串 結尾匹配 以啥結尾,k$即以k結尾的字串 另一種方法以什麼結尾匹配 \b表示非字母或

絕對可以輕鬆入門的表示式

前言: 看到這個題目你可能覺得小編在胡說,但是真的不是在胡說,小編就是用不到兩個小時,將正則表示式的語法以及使用方法輕鬆搞定的!這主要不是小編來講,而是小編分享一些資源! 1、什麼是正則表示式,它是用來幹什麼的! 正則表示式,又稱規則表示式。(英語:Regular Expre

表示式不是一天能學會的!這是我花七天整理的!希望能幫到

一.正則表示式概念 1.定義 正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。正則表示式(Regular Expression)是一

這20個表示式少寫1,000行程式碼

正則表示式——古老而又強大的文字處理工具。僅用一段簡短的表示式語句,就能快速地實現一個複雜的業務邏輯。掌握正則表示式,讓你的開發效率有一個質的飛躍。 正則表示式經常被用於欄位或任意字串的校驗,比如下面這段校驗基本日期格式的JavaScript程式碼:

知道這20個表示式,能少寫1,000行程式碼

正則表示式,一個十分古老而又強大的文字處理工具,僅僅用一段非常簡短的表示式語句,便能夠快速實現一個非常複雜的業務邏輯。熟練地掌握正則表示式的話,能夠使你的開發效率得到極大的提升。 正則表示式經常被用於欄位或任意字串的校驗,如下面這段校驗基本日期格式的JavaScript程式碼: var reg = /^(\

這個教程,真的學會表示式

這個教程,真的讓我學會了正則表示式 這是一篇翻譯文章。我學過很多次正則表示式,總是學了忘,忘了學,一到用的時候還是隻能靠搜尋引擎。 這回看到這個正則教程,感覺非常驚喜。嘗試翻譯了一遍,譯得不好,大家可以看原文,很容易理解。 原文地址:https://refrf.shreyasminocha.me/ 1 介

手把手教搞懂JavaScript表示式之方法

咱們來看看JavaScript中都有哪些操作正則的方法。 RegExp RegExp 是正則表示式的建構函式。 使用建構函式建立正則表示式有多種寫法: new RegExp('abc'); // /abc/ new RegExp('abc', 'gi'); // /abc/gi

Python 核心程式設計學習——表示式

#正則表示式 首先明確一下學習正則表示式的初衷 讀完了蟲師的自動化實踐書,自己動手想寫一個介面測試,發現很多東西都不大會,很多地方卡死了,尤其卡在匹配字元上,師父讓我直接用index取出字元,程式碼感覺不大美觀。 正則表示式是一些有字元和特殊符號組成的字串,它們描述了模式的重複或者表述多

Python高階程式設計(二)表示式

Python正則表示式 正則表示式是一個特殊的字元序列,它能幫助你方便的檢查一個字串是否與某種模式匹配。 Python 自1.5版本起增加了re 模組,它提供 Perl 風格的正則表示式模式。 re 模組使 Python 語言擁有全部的正則表示式功能。 compile 函式根據一個

一個使用表示式治口吃的問題。將“我我我...我我.要要要...要...學學學...編編編...程”抽取為“我要學程式設計

import java.util.TreeSet; public class RegexTest { public static void main(String[] args) { Method1();//1.治口吃 } //1.治口吃 private static voi

筆記(Python核心程式設計 第 1 部分 通用應用主題 1 章 表示式

                     Python核心程式設計 第 1 部分 通用應用主