1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          regularexpression(正則表達式基本概念及理解)

          來源:互聯網轉載 時間:2024-01-23 15:05:53

          正則表達式基本概念及理解-

          正則表達式(Regular Expression)基本概念及理解正則表達式(RegularExpression)正則表達式(regularexpression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。構造正則表達式的方法和創建數學表達式的方法一樣。也就是用多種元字符與運算符可以將小的表達式結合在一起來創建更大的表達式。正則表達式的組件可以是單個的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。正則表達式是由普通字符(例如字符a到z)以及特殊

          正則表達式(Regular Expression)

          正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。

          構造正則表達式的方法和創建數學表達式的方法一樣。也就是用多種元字符與運算符可以將小的表達式結合在一起來創建更大的表達式。正則表達式的組件可以是單個的字符、字符集合、字符范圍、字符間的選擇或者所有這些組件的任意組合。

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

          為什么需要正則表達式

          文本的復雜處理

          正則表達式的優勢和用途

          一種強大而靈活的文本處理工具

          大部分編程語言、數據庫、文本編輯器、開發環境都支持正則表達式

          正則表達式定義

          正如名字一樣時描述了一個規則,通過這個規則可以匹配一類字符串

          學習正則表達式很大程度上就是學習正則表達式的語法規則

          開發中使用正則表達式的流程

          分析所要匹配的數據,寫出測試用的典型數據

          在工具軟件中進行匹配測試

          在程序中調用通過測試的正則表達式

          正則表達式語法

          普通字符

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

          簡單的轉義字符

          \n :代表換行符 \t :制表符 \\ :代表\本身 \^,\$,\(,\),\{,\},\?,\+,\*,\|,\[,\] :匹配這些字符本身

          標準字符集合

          能夠與‘多種字符’匹配的表達式

          注意區分大小寫,大寫是相反的意思

          \d :任意一個數字,0-9中的任意一個 \w :任意一個字母或數字或下劃線,也就是A-Z,a-z,0-9,_,中任意一個 \s :包括空格、制表符、換行符等空白字符的其中任意一個 . :小數點可以匹配任意一個字符(除了換行符),如果要匹配包括“\n”在內的所有字符,一般用[\s\S]

          自定義字符集合

          方括號匹配方式,能夠匹配方括號中任意一個字符

          [ab5@] :匹配”a”,“b”,“5″或”@” [^abc] :匹配非”a”,”b,”c”之外的任意一個字符 [f-k] :匹配”f”-“k”之間的任意一個字母 [^a-f0-3] :匹配”a”-“f”,“0”-“3″之外的任何一個字符

          正則表達式的特殊符號,被包含到中括號中,則失去了特殊意義,除了^,-之外

          標準字符集合,除小數點外,如果被包含于中括號,自定義字符集合將包含該集合。如

          [\d.\-+]將匹配:數字、小數點、-、+

          量詞

          修飾匹配次數的特殊符號,修飾的是前一個表達式

          {n} :表達式重復n次 {m,n} :表達式至少重組m次,最多重復n次 {m,} :表達式至少重復m次 ? :匹配表達式0次或1次,相當于{0,1} + :表達式至少出現一次,相當于{1,} * :表達式出現或者出現多次,相當于{0,}

          匹配次數的貪婪模式:匹配的字符越多越好(默認)

          匹配次數的非貪婪模式:匹配的字符越少越好,修飾匹配次數的特殊符號后再加上一個”?”

          \d\d{6}其中只是對第二個的\d匹配6次,總共匹配7次

          非貪婪:

          字符邊界 (零寬度)

          匹配的是滿足條件的位置,而不是字符

          ^ :字符串開頭 $ :字符串結尾開始匹配 \b :匹配一個單詞的邊界,前面的字符和后面的字符不全是\w(字母數字下劃線)

          匹配模式(針對RegexBuddy軟件)

          IGNORECASE 忽略大小寫模式

          匹配時忽略大小寫,默認情況下,正則表達式是要區分大小寫的

          SINGLELINE 單行模式

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

          MULTILINE 多行模式

          每一行都是一個字符串,都有開頭和結尾,在指定了MULTULINE之后,如果需要僅匹配字符串開始的和結束的位置,可以使用\A和\Z

          選擇符和分組

          | :或,匹配左邊或右邊 () :捕獲組,在被修飾匹配次數的時候,括號中的表達式可以作為整體被修飾,去匹配結果的時候,括號中的表達式匹配到的內容可以被單獨得到,每一對括號會分配一個編號,使用()的捕捉根據左括號的順序重1開始自動編號。捕獲元素編號為零的第一個捕獲是由整個正則表達式模式匹配的文本 (?:Expression) :非捕獲組,一些表達式中,不得不使用(),但又不需要保存()中子表達式匹配的內容,這是可以用非捕獲組來抵消使用()帶來的副作用。

          反向引用(\nnn):每一對()會分配一個編號,使用()的捕捉根據左括號的順序從1開始自動編號,通過反向引用,可以對分組已捕獲的字符串進行引用。引用前面已捕獲內容從第一個括號開始一組括號為一個(nnn表示個數)默認為\0

          預搜索(零寬斷言)對位置的匹配

          (?=exp):斷言自身出現的位置后面能匹配表達式exp (?<=exp):斷言自身出現的位置的前面能匹配表達式exp (?!exp):斷言此位置的后面不能匹配表達式exp (?<!exp):斷言此位置的前面不能匹配表達式exp

          斷言后匹配的本身不計入匹配的字符串

          例:電話號碼驗證:

          郵箱驗證:

          常用正則表達式列表:

          Java中使用正則表達式

          將正則表達式變為java對象

          public class RegTest01 {        public static void main(String[] args) {            //在:asdasda123wwe12323中,是否符合指定的正則表達式\w+        //創建表達式對象        Pattern pattern = pattern.compile("\\w+");        //創建Matcher對象:目標字符串        Matcher matcher = pattern.matcher("asdasda123wwe12323**asd");        System.out.println(matcher.matches());        boolean b = matcher.find();//該方法掃描輸入的序列,查找與該模式匹配的下一個子序列        System.out.println(b);        System.out.println(matcher.find());        System.out.println(matcher.find());        System.out.println(matcher.find());    }}

          是否還在為Ide開發工具頻繁失效而煩惱,來吧關注以下公眾號獲取最新激活方式。親測可用!

          為防止網絡爬蟲,請關注公眾號回復”口令”

          激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

          【正版授權,激活自己賬號】:Jetbrains全家桶Ide使用,1年售后保障,每天僅需1毛

          【官方授權 正版激活】:官方授權 正版激活 自己使用,支持Jetbrains家族下所有IDE…

          輸出:

          輸出匹配得到的字符串:

          while(matcher.find()) {                System.out.println(matcher.group());            System.out.println(matcher.group(0));//group(),group(0)匹配整個表達式的子字符串        }

          測試正則表達式的分組處理:

          /* * 測試正則表達式的分組處理 * */public class RegTest02 {        public static void main(String[] args) {            Pattern pattern = Pattern.compile("([a-z]+)([0-9]+)");        Matcher matcher = pattern.matcher("asda123***asdada22*sda");        while (matcher.find()){                System.out.println(matcher.group());//匹配([a-z]+)([0-9]+)            System.out.println(matcher.group(1));//即匹配([a-z]+)            System.out.println(matcher.group(2));//匹配([0-9]+)        }    }}

          /* * 正則表達式在java中常用方法 * */public class RegTest03 {        public static void main(String[] args) {            Pattern pattern = Pattern.compile("[0-9]");        Matcher matcher = pattern.matcher("asda123***asdada22*sda");        //將數字替換        String s = matcher.replaceAll("&");        System.out.println(s);        //使用正則表達式以數字進行分割        String s1 = "asda123***asdada22*sda";        String[] strings = s1.split("\\d+");        System.out.println(Arrays.toString(strings));    }}

          輸出:

          /* * * 網絡爬蟲取鏈接 * */public class WebSpiderTest {        public static String getUrlContent(String urlStr){            StringBuilder sb = new StringBuilder();        try {                URL url = new URL(urlStr);            BufferedReader bf = new BufferedReader(new InputStreamReader(url.openStream()));            String temp = "";            while ((temp = bf.readLine()) != null){                    sb.append(temp);            }            bf.close();        } catch (MalformedURLException e) {                e.printStackTrace();        } catch (IOException e) {                e.printStackTrace();        }        return sb.toString();    }    public static void main(String[] args) {            String regStr = getUrlContent("http://www.baidu.com");        Pattern pattern = Pattern.compile("<a[\\s\\S]+?</a>");//取得超鏈接整個內容        Pattern pattern1 = Pattern.compile("(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?");//取得超鏈接整個內容        Matcher matcher = pattern1.matcher(regStr);        while (matcher.find()){                System.out.println(matcher.group());        }    }}

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          廣州期貨交易所開戶有哪些條件?1、連續5個交易日可用資金大于10萬,并通過相關的知識測試;2、有50個交易日記錄(當天有開倉或者平倉才算一個交易日記錄,如果只有持倉是不算的);3、具有能源中心交易編碼、金融交易編碼、特殊品種或期權交易權限。廣州期貨交易所發展定位是什么?廣州期貨交易所定位于創新型期貨交易所,其設立將為粵港澳大灣區內企業、“一帶一路”沿線企業提供更多風險管理工...

          黃金螺線是什么意思?黃金螺線有什么用處?小編整理了以下相關內容,一起來看看吧!黃金矩形可以用來構造黃金螺線。任何黃金矩形,如圖1,那可以劃分成一個正方形和一個小的黃金矩形,如圖2所示。這個過程理論上可以無限延續。我們這樣做出的正方形明顯向內旋轉,它們被標示成A、B、C、D、E、F和G。本身就呈黃金比例的兩條虛線,是黃金矩形的對角線,它們的交點精確指出了旋轉正方形的理論中心。從靠近這個中心的地方,我...

          (相關資料圖)1、一直被人們喻為愛情的象征,相傳他是一個頑皮的、身上長著翅膀的小神,他的箭一旦插入青年男女的心上,便會使他們深深相愛。2、在古希臘神話中,他是愛與美的女神(阿芙羅狄忒)Aphrodite與戰神(阿瑞斯)Ares的小兒子Eros。3、在羅馬神話中,他叫丘比特(Cupid),他的母親是維納斯(即阿芙羅狄忒)。以上就是【愛情之箭動畫版,愛情之箭】相關內容。...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>