開發過程最全的正則表達式-匹配中英文、字母和數字

来源:https://www.cnblogs.com/wangjae/archive/2019/05/20/10891982.html
-Advertisement-
Play Games

在做項目的過程中,使用正則表達式來匹配一段文本中的特定種類字元,是比較常用的一種方式,下麵是對常用的正則匹配做了一個歸納整理。 1、匹配中文:[\u4e00-\u9fa5] 2、英文字母:[a-zA-Z] 3、數字:[0-9]4、匹配中文,英文字母和數字及下劃線:^[\u4e00-\u9fa5_a- ...


在做項目的過程中,使用正則表達式來匹配一段文本中的特定種類字元,是比較常用的一種方式,下麵是對常用的正則匹配做了一個歸納整理。

1、匹配中文:[\u4e00-\u9fa5]

2、英文字母:[a-zA-Z]

3、數字:[0-9]

4、匹配中文,英文字母和數字及下劃線:^[\u4e00-\u9fa5_a-zA-Z0-9]+$
同時判斷輸入長度:
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}

5、
(?!_)  不能以_開頭
(?!.*?_$)  不能以_結尾
[a-zA-Z0-9_\u4e00-\u9fa5]+  至少一個漢字、數字、字母、下劃線
$  與字元串結束的地方匹配

6、只含有漢字、數字、字母、下劃線,下劃線位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$

7、由數字、26個英文字母或者下劃線組成的字元串
^\w+$

8、2~4個漢字
"^[\u4E00-\u9FA5]{2,4}$";

9、最長不得超過7個漢字,或14個位元組(數字,字母和下劃線)正則表達式
^[\u4e00-\u9fa5]{1,7}$|^[\dA-Za-z_]{1,14}$
 

10、匹配雙位元組字元(包括漢字在內):[^x00-xff]
評註:可以用來計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)

11、匹配空白行的正則表達式:ns*r
評註:可以用來刪除空白行

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

13、匹配首尾空白字元的正則表達式:^s*|s*$
評註:可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表達式

14、匹配Email地址的正則表達式:^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$

評註:表單驗證時很實用

15、手機號:^1(3|4|5|7|8)\d{9}$

16、身份證:(^\d{15}$)|(^\d{17}([0-9]|X|x)$)

17、匹配網址URL的正則表達式:[a-zA-z]+://[^s]*
評註:網上流傳的版本功能很有限,上面這個基本可以滿足需求

18、匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
評註:表單驗證時很實用


19、匹配國內電話號碼:d{3}-d{8}|d{4}-d{7}
評註:匹配形式如 0511-4405222 或 021-87888822

20、匹配騰訊QQ號:[1-9][0-9]{4,}
評註:騰訊QQ號從10000開始

21、匹配中國郵政編碼:[1-9]d{5}(?!d)
評註:中國郵政編碼為6位數字

22、匹配身份證:d{15}|d{18}
評註:中國的身份證為15位或18位

23、匹配ip地址:d+.d+.d+.d+
評註:提取ip地址時有用


24、匹配特定數字:
^[1-9]d*$    //匹配正整數
^-[1-9]d*$   //匹配負整數
^-?[1-9]d*$   //匹配整數
^[1-9]d*|0$  //匹配非負整數(正整數 + 0)
^-[1-9]d*|0$   //匹配非正整數(負整數 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮點數
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配負浮點數
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮點數
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非負浮點數(正浮點數 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮點數(負浮點數 + 0)
評註:處理大量數據時有用,具體應用時註意修正


25、匹配特定字元串:
^[A-Za-z]+$  //匹配由26個英文字母組成的字元串
^[A-Z]+$  //匹配由26個英文字母的大寫組成的字元串
^[a-z]+$  //匹配由26個英文字母的小寫組成的字元串
^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字元串
^w+$  //匹配由數字、26個英文字母或者下劃線組成的字元串

26、
在使用RegularExpressionValidator驗證控制項時的驗證功能及其驗證表達式介紹如下:
只能輸入數字:“^[0-9]*$”
只能輸入n位的數字:“^d{n}$”
只能輸入至少n位數字:“^d{n,}$”
只能輸入m-n位的數字:“^d{m,n}$”
只能輸入零和非零開頭的數字:“^(0|[1-9][0-9]*)$”
只能輸入有兩位小數的正實數:“^[0-9]+(.[0-9]{2})?$”
只能輸入有1-3位小數的正實數:“^[0-9]+(.[0-9]{1,3})?$”
只能輸入非零的正整數:“^+?[1-9][0-9]*$”
只能輸入非零的負整數:“^-[1-9][0-9]*$”
只能輸入長度為3的字元:“^.{3}$”
只能輸入由26個英文字母組成的字元串:“^[A-Za-z]+$”
只能輸入由26個大寫英文字母組成的字元串:“^[A-Z]+$”
只能輸入由26個小寫英文字母組成的字元串:“^[a-z]+$”
只能輸入由數字和26個英文字母組成的字元串:“^[A-Za-z0-9]+$”
只能輸入由數字、26個英文字母或者下劃線組成的字元串:“^w+$”
驗證用戶密碼:“^[a-zA-Z]w{5,17}$”正確格式為:以字母開頭,長度在6-18之間,
只能包含字元、數字和下劃線。
驗證是否含有^%&',;=?$"等字元:“[^%&',;=?$x22]+”
只能輸入漢字:“^[u4e00-u9fa5],{0,}$”
驗證Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
驗證InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
驗證身份證號(15位或18位數字):“^d{15}|d{}18$”
驗證一年的12個月:“^(0?[1-9]|1[0-2])$”正確格式為:“01”-“09”和“1”“12”
驗證一個月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
正確格式為:“01”“09”和“1”“31”。
匹配中文字元的正則表達式: [u4e00-u9fa5]
匹配雙位元組字元(包括漢字在內):[^x00-xff]
匹配空行的正則表達式:n[s| ]*r
匹配HTML標記的正則表達式:/<(.*)>.*|<(.*) />/
匹配首尾空格的正則表達式:(^s*)|(s*$)
匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配網址URL的正則表達式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用CTE,ROW_NUMBER,PARTITION BY來處理數據表重覆記錄。 先準備下麵的數據: IF OBJECT_ID('tempdb.dbo.#Part') IS NOT NULL DROP TABLE #Part CREATE TABLE #Part ( [ID] INT, [Item] ...
  • 如標題一樣,檢索每個組的最後一條記錄。 舉例說明,先準備一些數據: 要求是以[Category]來分組, 檢查以[Qty]數據最大的記錄。 CTE查詢分組表: SELECT數據: 只要我拿到row number為1的記錄即可,因為在CTE處理時,已經做好按[Category]來分組併排序。 ...
  • 高級查詢 分組查詢 查看EMPLOYEE表中,員工在同一部門做相同工作且總工資大於5000,平均工資小於1500的薪水情況和人數? 分組查詢註意事項: 如果在查詢結果中的某些欄位上沒有使用分組函數,那麼這些欄位就必須出現在group by子句中。這是一個分組查詢的強制性規則。 非等值連接 簡單地來說 ...
  • SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表說明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End, 欄位序號 = A.colorder, 欄位名 = ...
  • 我們經常說,看一個事兒千萬不要直接陷入細節里,你應該先鳥瞰其全貌,這樣能夠幫助你從高維度理解問題。同樣,對於MySQL的學習也是這樣。平時我們使用資料庫,看到的通常都是一個整體。比如,你有個最簡單的表,表裡只有一個ID欄位,在執行下麵這個查詢語句時: 我們看到的只是輸入一條語句,返回一個結果,卻不知 ...
  • 最近做了一個Excel的多級聯動的功能,具體是將全國所有的氣象局按一二三四級單位做成四列,實現各級的聯動下拉選擇,這和省市縣鄉的各級聯動的功能基本一樣,下麵記錄下具體的操作步驟。 1、首先需要從資料庫中將所有單位按照Id ,父級ID ,單位名稱,導出excel, 2、將所有單位中的一級單位單獨取出作 ...
  • 寫一個符合自己要求使用透視存儲過程。在開發時,直接使用即可。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: Insus.NET -- Create date: 2019-05-19 -- Update date: 201 ...
  • CPU 處理邏輯計算和記憶體管理,顯示操作。 GPU CPU無法顯示覆雜的圖形,GPU用於顯示覆雜圖形,分擔CPU的任務 xml佈局到屏幕的顯示流程:xml 通過 LayoutInflater 載入到記憶體中,然後經過CPU計算處理為多維圖形,在通過 OpenGL 調用GPU,GPU對圖形進行柵格化顯示 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...