亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

正則表達(dá)式總結(jié)

stefan / 1293人閱讀

摘要:正則表達(dá)式總結(jié)知識(shí)點(diǎn)總結(jié)正則表達(dá)式正則表達(dá)式為什么需要正則表達(dá)式文本的復(fù)雜處理。學(xué)習(xí)正則表達(dá)式很大程度上就是學(xué)習(xí)表達(dá)式的語(yǔ)法規(guī)則。捕獲元素編號(hào)為零的第一個(gè)捕獲是由整個(gè)正則表達(dá)式模式匹配的文本。

正則表達(dá)式總結(jié)

@(Java知識(shí)點(diǎn)總結(jié))[Java, 正則表達(dá)式]

正則表達(dá)式(regular expression)

為什么需要正則表達(dá)式?

文本的復(fù)雜處理 。

正則表達(dá)式的優(yōu)勢(shì)和用途?

一種強(qiáng)大而靈活的文本處理工具;

大部分編程語(yǔ)言、數(shù)據(jù)庫(kù)、文本編輯器、開發(fā)環(huán)境都支持正在表達(dá)式。

正則表達(dá)式定義:

正如他的名字一樣是描述了一個(gè)規(guī)則,通過這個(gè)規(guī)則可以 匹配一類字符串 。

學(xué)習(xí)正則表達(dá)式很大程度上就是學(xué)習(xí)表達(dá)式的語(yǔ)法規(guī)則。

開發(fā)中使用正則表達(dá)式的流程:

分析所要匹配的數(shù)據(jù),寫出測(cè)試用的典型數(shù)據(jù)

在工具軟件中進(jìn)行匹配測(cè)試

在程序中調(diào)用通過測(cè)試的正則表達(dá)式

語(yǔ)法
縱向合并單元格
普通字符 字母、數(shù)字、漢字、下劃線、以及沒有特殊定義的標(biāo)點(diǎn)符號(hào),都是“普通字符”。 表達(dá)式中的普通字符,在匹配一個(gè)字符串的時(shí)候,匹配與之相同的一個(gè)字符
簡(jiǎn)單轉(zhuǎn)義字符
n 代表?yè)Q行符
t 制表符
代表本身
^ , $ , . , ( , { , } , ? , + , * , | , [ , ] 匹配這些字符本身
標(biāo)準(zhǔn)字符集合 (注意大小寫區(qū)分,大寫是相反的意思)
d 任意一個(gè)數(shù)字,0~9中的任意一個(gè)
w 任意一個(gè)字母或數(shù)字或下劃線, 也就是A~Z,a~z,0~9,_中任意一個(gè)
s 包括空格、制表符、換行符等空白字符的其中任意一個(gè)
. 小數(shù)點(diǎn)可以匹配除了換行符的任意一個(gè)字符 如果要匹配包括“n”在內(nèi)的所有字符,用[sS]
自定義字符集合 - []能夠匹配方括號(hào)中的任意一個(gè)字符
[ab5@] 匹配a或b或5或@
[ ^abc ] 匹配a、b、c 之外的任意一個(gè)字符
[f-k] 匹配f~k之間的任意一個(gè)字母
[ ^A-F0-3 ] 匹配A~F,0~3之外的任意一個(gè)字符
自定義字符集合 - []能夠匹配方括號(hào)中的任意一個(gè)字符
量詞 (Quantifier) 修飾匹配次數(shù)的特殊符號(hào)
{n} 表達(dá)式重復(fù)n次
{m,n} 表達(dá)式至少重復(fù)m次,至多重復(fù)n次
{m,} 表達(dá)式至少重復(fù)m次
非貪婪模式:修飾匹配次數(shù)的特殊符號(hào)后加一個(gè)?,表示匹配的字符越少越好。 例如:d{3,6}? 表示:匹配3個(gè)數(shù)字
相當(dāng)于{0,1},表達(dá)式匹配0次或1次
+ 相當(dāng)于 {1,},表達(dá)式至少匹配一次
* {0,},表達(dá)式不出現(xiàn)或出現(xiàn)任意次
字符邊界 (匹配的是位置)
^ 字符串開始的地方匹配
$ 字符串結(jié)束的地方匹配
b 匹配一個(gè)單詞邊界,前面的字符和后面的字符不全是w
匹配模式
IGNORECASE 忽略大小寫模式 匹配是忽略大小寫 默認(rèn)情況下,正則表達(dá)式是要區(qū)分大小寫的
SINGLELINE 單行模式 整個(gè)文本看作一個(gè)字符串,只有一個(gè)開頭,一個(gè)結(jié)尾 使小數(shù)點(diǎn)“.”,可以匹配包含換行符(n)在內(nèi)的任意字符
MULITILINE 多行模式 每行都是一個(gè)字符串,都有開頭和結(jié)尾 在指定了MULTILINE之后,如果選喲僅匹配字符串開始和結(jié)束位置,可以使用A和Z
選擇符和分組
| 分支結(jié)構(gòu) 匹配是忽略大小寫 默認(rèn)情況下,正則表達(dá)式是要區(qū)分大小寫的
() 捕獲組 (1)在被修飾匹配次數(shù)的時(shí)候,括號(hào)中的表達(dá)式可以作為整體被修飾。 (2)取匹配結(jié)果的時(shí)候,括號(hào)中的表達(dá)式匹配到的內(nèi)容可以被多帶帶得到。 (3)每一對(duì)括號(hào)會(huì)分配一個(gè)編號(hào),使用()的捕獲根據(jù)左括號(hào)的順序從1開始自動(dòng)編號(hào)。捕獲元素編號(hào)為零的第一個(gè)捕獲是由整個(gè)正則表達(dá)式模式匹配的文本。
(?:Expression) 非捕獲組 一些表達(dá)式中,不得不使用(),但又不需要保存()中子表達(dá)式匹配的內(nèi)容,這時(shí)可以用非捕獲組來抵消使用()帶來的副作用。
反向引用(nnn) - 每一對(duì)()會(huì)分配一個(gè)編號(hào),使用()的捕獲根據(jù)左括號(hào)的順序從1開始自動(dòng)編號(hào)。 - 通過反向引用,可以對(duì)分組已捕獲的字符串進(jìn)行引用。
預(yù)搜索 (零寬斷言)
(?=exp) 斷言自身出現(xiàn)的位置的 __后面__能匹配表達(dá)式exp
(?<=exp) 斷言自身出現(xiàn)的位置的 __前面__能匹配表達(dá)式exp
(?!=exp) 斷言此位置的__后面__不能匹配表達(dá)式exp
(? 斷言此位置的__前面__不能匹配表達(dá)式exp
- 只進(jìn)行子表達(dá)式的匹配,匹配內(nèi)容不計(jì)入最終的匹配結(jié)果,是零寬度。 - 這個(gè)位置應(yīng)該符合某個(gè)條件。判斷當(dāng)前位置的前后字符,是否符合指定的條件,但不匹配前后的字符。是對(duì)位置的匹配。 - 正則表達(dá)式匹配過程中,如果子表達(dá)式匹配到的是字符內(nèi)容,而非位置,并被保存到最終的匹配結(jié)果中,那么就認(rèn)為這個(gè)子表達(dá)式是占有字符的;如果子表達(dá)式匹配的僅僅是位置,或者匹配的內(nèi)容并不保存到最終的匹配結(jié)果中,那么就認(rèn)為這個(gè)子表達(dá)式是零款多帶帶的。占有字符還是零寬度,是針對(duì)匹配的內(nèi)容是否保存到最終的陪陪結(jié)果中而言的。 例如:[a-z]+(?!d+),匹配以任意個(gè)字母開頭且后面不能有數(shù)字的表達(dá)式。。
常用表達(dá)式 電話號(hào)碼驗(yàn)證

思路:

由數(shù)字和“-”構(gòu)成

電話號(hào)碼為7到8位

如果電話號(hào)碼中包含有區(qū)號(hào),那么區(qū)號(hào)為三位或四位,首位是0

區(qū)號(hào)用“-”和其他部分隔開

移動(dòng)電話號(hào)碼為11位

11位移動(dòng)電話號(hào)碼的第一位和第二位為“13”,“15”,“18”

(0d{2,3}-d{7,9})(1[35789]d{9})

電子郵件地址驗(yàn)證

思路:

用戶名:字母、數(shù)字、中劃線、下劃線組成。

@

網(wǎng)址:字母、數(shù)字組成。

小數(shù)點(diǎn):.

組織域名:2-4位字母組成。

不區(qū)分大小寫

[w-+@[a-z0-9A-Z]+(.[A-Za-z]{2,4}){1,2}


Java中使用正則表達(dá)式

java.util.regex包下面:

 類 Parttern:正則表達(dá)式的編譯表示形式。
 類 Matcher:通過解釋 Pattern 對(duì) 字符串執(zhí)行匹配操作的引擎。

/**
 * 電話號(hào)碼正則表達(dá)式測(cè)試
 * @author TR
 *
 */
public  class Reg {
 
  public static void main(String[] args) {
    //建立正則表達(dá)式,并啟用相應(yīng)模式
    //java中轉(zhuǎn)為
    Pattern p = Pattern.compile("(0d{2,3}-d{7,9})|(1[35789]d{9})" );
    //匹配字符串
    Matcher m = p.matcher("010-7758258");
    boolean yesorno = m.matches();
    System.out.println(yesorno);
  }
}
/**
 * 分組
 * @author TR
 *
 */
public  class Reg {
 
  public static void main(String[] args) {
    
    Pattern p = Pattern.compile("([1-9]+)([a-z]+)");
    //該方法掃描輸入的序列,查找與該模式匹配下一個(gè)序列
    Matcher m = p.matcher("23434aaa**sfsd233**23dffd" );
    
    while(m.find()){
      System.out.println(m.group());
      System.out.println(m.group(1));
      System.out.println(m.group(2));
      System.out.println("~~~~~~~~~~~~~~~~~~~~");
    }
  }
}
public class Reg {
 
  public static void main(String[] args) {
    
    
  Pattern p = Pattern.compile("[0-9]");
  //該方法掃描輸入的序列,查找與該模式匹配下一個(gè)序列
  Matcher m = p.matcher("23434aaa");
  
  System.out.println(m.replaceAll("#")); //替換  #####aaa
  
  String s = "aa222bb333cc3434";
  String[] arrs = s.split("d+");  //切割
  System.out.println(Arrays.toString(arrs)); //[aa, bb, cc]
  
  }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/76536.html

相關(guān)文章

  • 正則達(dá)式

    摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書問世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫,作用是對(duì)字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計(jì)語(yǔ)言里和所有的計(jì)算機(jī)平臺(tái)上使用的文字處理工具。它可以用來查找特定的信息(搜索),也可以用來查...

    bang590 評(píng)論0 收藏0
  • JavaScript正則達(dá)式總結(jié)

    摘要:正則表達(dá)式一直是里比較難以掌握的點(diǎn)。在中創(chuàng)建正則的兩種方式使用字面量這就是正則表達(dá)式的字面量語(yǔ)法,表示正則表達(dá)式的模式,為正則表達(dá)式的標(biāo)志。字面量形式的正則表達(dá)式一般使用較多,也推薦大家盡可能使用這種形式,簡(jiǎn)潔易讀,符合正常的使用習(xí)慣。 正則表達(dá)式一直是js里比較難以掌握的點(diǎn)。 看不懂,學(xué)不會(huì),記不住。 每次需要用到正則的時(shí)候,都需要再去查找資料。 今天花時(shí)間把正則的知識(shí)點(diǎn)總結(jié)下,希望...

    big_cat 評(píng)論0 收藏0
  • Nginx 學(xué)習(xí)總結(jié)(3)—— Location 模塊

    摘要:改為后,顯示出文件的大概大小,單位是或者或者默認(rèn)為,顯示的文件時(shí)間為時(shí)間。 這是 Nginx 學(xué)習(xí)總結(jié)的第三篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(2) —— 基本配置,這一篇會(huì)對(duì)Location 模塊 做一些總結(jié)。我們知道,Location 模塊 主要是用于針對(duì)某些特定的 URL 進(jìn)行配置,可以由前綴字符串定義,也可以由正則表達(dá)式定義。 Location 匹配規(guī)則 location...

    biaoxiaoduan 評(píng)論0 收藏0
  • 正則達(dá)式難記點(diǎn)總結(jié)

    摘要:正則表達(dá)式匹配但是不是使用正則表達(dá)式的方法提供了不少使用正則表達(dá)式的方法。當(dāng)正則表達(dá)式包含子表達(dá)式且不包含全局標(biāo)志時(shí),二者返回相同的數(shù)組。示例當(dāng)正則表達(dá)式帶有全局標(biāo)志時(shí),二者表現(xiàn)不一致。 一路以來遇到正則表達(dá)式的地方都是直接去百度的,因?yàn)楦杏X大部分遇到的正則表達(dá)式的地方都是很常見的。這次順便總結(jié)下正則表達(dá)式比較難記的部分,方便自己日后查閱吧( ̄. ̄) 正則表達(dá)式中的特殊字符 感覺MDN...

    劉永祥 評(píng)論0 收藏0
  • javascript正則達(dá)式總結(jié)

    摘要:如果你知道正則表達(dá)式模式將會(huì)改變,或者你事先不知道什么模式,而是從另一個(gè)來源獲取,如用戶輸入,這些情況都可以使用構(gòu)造函數(shù)。 為什么要使用正則表達(dá)式 正則表達(dá)式通過由普通字符和特殊字符組成的文字模板完成對(duì)字符串的校驗(yàn),搜索,替換。在javascript中類似這樣 /^1d{10}$/ 上面的這個(gè)簡(jiǎn)單的正則用來匹配手機(jī)號(hào)至于說正則表達(dá)式到底有什么意義,借由《精通正則表達(dá)式》里面的一句話來概...

    impig33 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<