1. 程式人生 > >正則表示式(Regular Expression)基本語法

正則表示式(Regular Expression)基本語法

一、簡介
為什麼需要正則表示式?
文字的複雜處理

正則表示式的優勢和用途?
一種強大而靈活的文字處理工具;
大部分程式語言、資料庫、文字編輯器、開發環境都支援正則表示式。

正則表示式定義:
正如它的名字一樣,是描述了一個規則,通過這個規則可以匹配一類字串。
學習正則表示式很大程度上就是學習正則表示式的語法現則。

開發中如何使用?
開發中使用正則表示式的流程
分析所要匹配的資料,寫出測試用的典型資料
在工具軟體中進行匹配測試
在程式中呼叫通過測試的正則表示式

二、語法
1、普通字元
字母、數字、漢字、下劃線、以及沒有特殊定義的標點符號,都是“普通字元”。表示式中的普通字元,在匹配一個字串的時候,匹配與之相同的一個字元

2、簡單的轉義字元

3、標準字元集合
能夠與 “多種字元” 匹配的表示式。
注意:區分大小寫,大寫是相反的意思(取反)。

4、自定義字元集合
[ ]方括號匹配方式,能夠匹配方括號中任意一個字元。

正則表示式的特殊符號,被包含到中括號中,則失去特殊意義,除了^,-之外。
標準字元集合,除小數點外,如果被包含於中括號,自定義字元集合
將包含該集合。
比如:[\d.-+] 將匹配:數字、小數點、-、+

5、量詞–修飾匹配次數的特殊符號

匹配次數中的貪婪模式(匹配字元越多越好,預設!)
匹配次數中的非貪婪模式(匹配字元越少越好,修飾匹配次數的特殊符號後再加上一個”?”號)

6、字元邊界(零寬)
本組標記匹配的不是字元而是位置,符合某種條件的位置。

\b匹配這樣一個位置:前面的字元和後面的字元不全是\w

7、匹配模式

IGNORECASE忽略大小寫模式
一匹配時忽略大小寫。
一預設情況下,正則表示式是要區分大小寫的。

SINGLELINE單行模式
一整個文字看作一個字串,只有一個開頭,一個結尾。
一使小數點”.”可以匹配包含換行符(\n)在內的任意字元。

MULTILINE多行模式
一每行都是一個字串,都有開頭和結尾。
一在指定了MULTILINE之後,如果需要僅匹配字串最開始和最結束位置,可以使用\A和\Z。

8、選擇符與分組

反向引用(\nnn)
一每一對 ( ) 會分配一個編號,使用 ( ) 的捕獲根據左括號的順序從1開始自動編號。
一通過反向引用,可以對分組已捕獲的字串進行引用。

| 分支結構

( ) 捕獲組

(?:Expression)非捕獲組)

9、預搜尋(零寬斷言)
只進行子表示式的匹配,匹配內容不計入最終的匹配結果,是零寬度。

這個位置應該符合某個條件。判斷當前位置的前後字元,是否符合指定的條件,但不匹配前後的字元,是對位置的匹配

正則表示式匹配過程中,如果子表示式匹配到的是字元內容而非位置,並被儲存到最終匹配結果中,那麼就認為這個子表示式是佔有字元的;如果子表示式匹配的僅僅是位置或者匹配的內容並不儲存到最終的匹配結果中,那麼就認為這個子表示式是零寬度的,佔有字元還是零寬度,是針對匹配的內容是否儲存到最終的匹配結果中而言的。(零寬度就是對位置的匹配)

(?=exp)

(?!exp)

三、練習
1、電話號碼驗證
(1)電話號碼由數字和”-“構成
(2)電話號碼為7到8位
(3)如果電話號碼中包含有區號,那麼區號為三位或四位,首位是0.
(4)區號用”一’”和其他部分隔開
(5)行動電話號碼為11位
(6)11位行動電話號碼的第一位和第二位為’’13”,”15”,”18’。

2、電子郵件地址驗證
1.使用者名稱:字母、數字、中劃線t下劃線組成。
2.@
3.網址二字母、數字組成。
4.小數點:.
5.組織域名:2一4位字母組成。
6.不區分大小寫

四、常用正則表示式

相關推薦

表示式Regular Expression基本語法

一、簡介 為什麼需要正則表示式? 文字的複雜處理 正則表示式的優勢和用途? 一種強大而靈活的文字處理工具; 大部分程式語言、資料庫、文字編輯器、開發環境都支援正則表示式。 正則表示式定義: 正如它的名字一樣,是描述了一個規則,通過這個規則可以匹配一

表示式regular expression

正則表示式 什麼是正則表示式? 正則表示式:用於匹配規律規則的表示式,是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個“規則字串”,用來表達對字串的一種過

萬用字元WildCard表示式Regular Expression

1.萬用字元(wildcard)就是萬用牌的意思   * 表示匹配任意長度的任意字元   ? 表示匹配一個任意字元   […]則表示匹配括號中列出的字元中的任意一個   [!..]表示不

表示式Regular Expression高階使用文字編輯器,資料庫,Java

一、開發環境和文字編輯器中使用正則表示式 eclipse Notepad++ EditPlus UltraEdit 二、資料庫中也可以使用正則表示式 Mysq15.5以上 Oracle10g以上 例如: SELECT prod_name

[Swift]LeetCode10. 表示式匹配 | Regular Expression Matching

Given an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*'. '.' Matches any single cha

C++11新特性(74)-表示式庫(regular-expression library)

正則表示式(regular expression)是一種描述字元序列的方法,從C++11起,C++正則表示式庫(regular-expression library)成為新標準庫的一部分。 由於正則表示式本身就是一個非常龐大的系統,本文只介紹C++中使用正則表示式的小例子,淺嘗輒止。 基

【轉】Python之表示式re模組

【轉】Python之正則表示式(re模組) 本節內容 re模組介紹 使用re模組的步驟 re模組簡單應用示例 關於匹配物件的說明 說說正則表示式字串前的r字首 re模組綜合應用例項 參考文件 提示: 由於該站對MARKDOWN的表格支援的不是很好,所以本文中的表

LINUX學習—grep和表示式LINUX三劍客

grep, egrep, fgrep grep(GLOBAL RESEARCH) 是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。根據模式,搜尋文字,並將符合模式的文字行顯示出來。只能使用基本正則表示式 要使用擴充套件正則表示式需要-E pattern

表示式re模組

正則表示式,用來處理什麼的呢?它有什麼作用? 正則表示式是用來處理字串匹配的!   講正題之前我們先來看一個例子::https://reg.jd.com/reg/person?ReturnUrl=https%3A//www.jd.com/ 這是京東的註冊頁面,開啟頁面我們就看到這些要求輸入個

【LeetCode】#10表示式匹配(Regular Expression Matching)

【LeetCode】#10正則表示式匹配(Regular Expression Matching) 題目描述 給定一個字串 (s) 和一個字元模式 §。實現支援 ‘.’ 和 ‘’ 的正則表示式匹配。 ‘.’ 匹配任意單個字元。 '’ 匹配零個或多個前面的元素。 匹配應該覆蓋整個字串

常用的表示式匹配數字

正則表示式用於字串處理、表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。 匹配中文字元的正則表示式: [\u4e00-\u9fa5] 評註:匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元(包括漢字在內):[^\x00-\xff]

表示式十五——統計程式碼中的程式碼行、註釋行和空白行

package com.wy.regular; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFo

表示式十七——不捕獲分組

package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public clas

表示式十八——向前引用

package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public clas

表示式十二——字串的替換

1、查詢字串中的字串 package com.wy.regular; import java.util.regex.Matcher; import java.util.regex.Pattern;

python中的表示式re模組

一、簡介 正則表示式本身是一種小型的、高度專業化的程式語言,而在python中,通過內嵌整合re模組,程式媛們可以直接呼叫來實現正則匹配。正則表示式模式被編譯成一系列的位元組碼,然後由用C編寫的匹配引擎執行。 二、正則表示式中常用的字元含義 1、普通字元和11個元字

JS表示式火星文

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>正則表示式(火星文)</title> </head>

表示式基礎2

從左到右進行計算,並遵循優先順序順序,這與算術表示式非常類似。 相同優先順序的從左到右進行運算,不同優先順序的運算先高後低。下表從最高到最低說明了各種正則表示式運算子的優先順序順序: 運算子 描述 \ 轉義符 (), (?:), (?=), []

[轉]python中的表示式re模組

轉自:https://www.cnblogs.com/tina-python/p/5508402.html 一、簡介 正則表示式本身是一種小型的、高度專業化的程式語言,而在python中,通過內嵌整合re模組,程式媛們可以直接呼叫來實現正則匹配。正則表示式模式被編譯成一系列的位元組碼

15/18位身份證號碼表示式詳細版

xxxxxx yyyy MM dd 375 0     十八位 xxxxxx    yy MM dd   75 0     十五位 地區:[1-9]\d{5} 年的前兩位:(18|19|([23]\