中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

正則表達式基礎知識點有哪些

發布時間:2023-03-25 17:31:23 來源:億速云 閱讀:118 作者:iii 欄目:開發技術

這篇“正則表達式基礎知識點有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“正則表達式基礎知識點有哪些”文章吧。

正則表達式是什么

校驗數據的有效性、查找符合要求的文本以及對文本進行切割和替換等操作。正則表達式的目的是真正的強大之處就在于可以查找符合某個規則的文本。

元字符

1.特殊字符串

  • . 除換行符外任意字符

  • \d 表示任意單個數字

  • \w 表示任意單個數字或字母或下劃線

  • \s 表示任意單個空白符

\D \W \S,意思正相反。

2.空白符

  • \r 回車符

  • \n 換行符

  • \f 換頁符

  • \t 制表符

  • \v 垂直制表符

  • \s 任意空白符

3.量詞

  • * 代表0次到多次

  • + 1次到多次

  • ? 0到1次

  • {m} 出現m次

  • {m,} 出現至少m次

  • {m,n} m到n次

4.范圍

  • |或 ,如ab|bc代表ab或bc

  • [...] 多選一,括號中任意單個元素

  • [a-z] 匹配a-z之間任意單個元素

  • [^..] 取反,不能包括括號中的任意單個元素

貪婪匹配、非貪婪匹配和獨占模式

  • 貪婪模式的特點就是盡可能進行最大長度匹配

  • 非貪婪模式會盡可能短地去匹配。

  • 獨占模式和貪婪模式很像,獨占模式會盡可能多地去匹配,如果匹配失敗就結束,不會進行回溯,這樣的話就比較節省時間。具體的方法就是在量詞后面加上加號(+),例如xy{1,3}+yz

注意: Python 和 Go 的標準庫目前都不支持獨占模式。

(“.+?”)|\w{2,6}

分組和引用

正則表達式基礎知識點有哪些

如圖所示的正則,將日期和時間都括號括起來。這個正則中一共有兩個分組,日期是第 1 個,時間是第 2 個。

1.不保存子組

分組的作用就是后續可能還會被引用到,但是如果不需要引用的時候可以添加不保存子組,表達式(?:xxx),優點是正則性能會更好,在子組計數時也更不容易出錯。

2.括號嵌套

正則表達式基礎知識點有哪些

四種匹配模式

1.不區分大小寫模式(Case-Insensitive)

不區分大小寫模式,正則表達式(?i)cat,這樣匹配的字符就不區分大小寫了

如果我們想要前面匹配上的結果,和第二次重復時的大小寫一致,那該怎么做呢?我們只需要用括號把修飾符和正則 cat 部分括起來,加括號相當于作用范圍的限定,讓不區分大小寫只作用于這個括號里的內容。正則表達式((?i)cat)

2.點號通配模式(Dot All)

元字符里講.可以匹配除了換行以外的任何元素,用單行模式中使用.,正則表示式(?s).

3.多行匹配模式

多行模式的表達式(?m)^...|...$,這樣的匹配好處是每一行

4.注釋模式

略...

斷言

斷言是指對匹配到的文本位置有要求。

1.單詞邊界

在準確匹配單詞時,我們使用 \b...\b 就可以實現了,也可以指定表達式的開頭和結尾^...$

2.環視

環視的主要是定義清晰的邊界。

  • (?<=Y),左邊是Y

  • (?<=!Y),左邊不是Y

  • (?=Y),右邊是Y

  • (?!Y),右邊不是Y

左尖括號代表看左邊,沒有尖括號是看右邊,感嘆號是非的意思。

常用正則Demo

正則表達式用于字符串處理、表單驗證等場合,實用高效。現將一些常用的表達式收集于此,以備不時之需。

  • 匹配中文字符的正則表達式: [u4e00-u9fa5]

  • 匹配雙字節字符(包括漢字在內):[^x00-xff]

  • 匹配空白行的正則表達式:ns*r

  • 匹配HTML標記的正則表達式:<(S*?)[^>]*>.*?|<.*? />

  • 匹配首尾空白字符的正則表達式:^s*|s*$

  • 匹配Email地址的正則表達式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

  • 匹配網址URL的正則表達式:[a-zA-z]+://[^s]*

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

  • 匹配國內電話號碼:d{3}-d{8}|d{4}-d{7}( 匹配形式如 0511-4405222 或 021-87888822)

  • 匹配中國郵政編碼:[1-9]d{5}(?!d)

  • 匹配身份證:d{15}|d{18}

2.匹配特定數字:

  • 匹配正整數 ^[1-9]d*$

  • 匹配負整數 ^-[1-9]d*$

  • 匹配整數 ^-?[1-9]d*$

  • 匹配非負整數(正整數 + 0)^[1-9]d*|0$

  • 匹配非正整數(負整數 + 0)^-[1-9]d*|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)$

  • 匹配非負浮點數(正浮點數 +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$

3.匹配特定字符串:

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

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

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

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

  • 匹配由數字、26個英文字母或者下劃線組成的字符串 ^w+$

  • 只能輸入數字:^[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-./?%&=]*)?$

  • 驗證電話號碼:^((d{3,4})|d{3,4}-)?d{7,8}$

以上就是關于“正則表達式基礎知識點有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

格尔木市| 澄城县| 沙雅县| 青海省| 甘肃省| 奈曼旗| 翼城县| 高邑县| 灵山县| 九江县| 台中市| 邹城市| 彩票| 响水县| 新蔡县| 库尔勒市| 新乡市| 郁南县| 荔浦县| 丹棱县| 姚安县| 大足县| 望谟县| 思茅市| 阳西县| 桐柏县| 东阳市| 宁城县| 临夏市| 施甸县| 肥西县| 克拉玛依市| 麻江县| 辽阳县| 左贡县| 清流县| 班戈县| 准格尔旗| 清镇市| 深水埗区| 凤阳县|