1. 程式人生 > >java中正則表示式運用例項(用String類的matches方法演示)

java中正則表示式運用例項(用String類的matches方法演示)

java中正則表示式運用例項(參看java中正則表示式運用詳解):

測試程式碼 
  1. package test;  
  2. /**  
  3.  * 在String的matches()方法,split()方法中使用正則表示式.  
  4.  * @author fhd001  
  5.  */  
  6. public class RegexTest {  
  7.     public static void main(String[] args) {  
  8.         /*  
  9.          * 普通字元  
  10.          */  
  11.         String str1 = "abc45abc345";  
  12.         String[]arr1 = str1.split("abc"
    );  
  13.         for (String string : arr1) {  
  14.             System.out.print(string+"-->");  
  15.         }  
  16.         System.out.println();  
  17.         /*  
  18.          * 簡單的轉義字元  
  19.          * 在java中轉義字元時一定要用雙反斜線,兩個斜線轉義成一個斜線,  
  20.          * 在用這個斜線字元轉義那些特殊字元.  
  21.          */  
  22.         String str2 = "^$()[]{}.?+*|";  
  23.         boolean flag = str2.matches("//^//$//(//)//[//]//{//}//.//?//+//*//|");  
  24.         System.out.println(flag);  
  25.         /*  
  26.          * 轉義字元 /Q.../E.  
  27.          */  
  28.         String str3 = "^$()[]{}.?+*|99999";  
  29.         boolean flag2 = str3.matches("//Q^$()[]{}.?+*|//E//d{5}");  
  30.         System.out.println(flag2);  
  31.         /*  
  32.          * 字元集合  
  33.          */  
  34.         String str4 = "dfddri334";  
  35.         boolean flag4 = str4.matches(".+");  
  36.         System.out.println(flag4);  
  37.         String str5 = "#$%^*())%";  
  38.         boolean flag5 = str5.matches("//W{9}");  
  39.         System.out.println(flag5);  
  40.         String str6 = "4gffmdkekrhhr";  
  41.         boolean flag6 = str6.matches("//w+");  
  42.         System.out.println(flag6);  
  43.         String str7 = "fjfdke    eett ";  
  44.         boolean flag7 = str7.matches("//w+//s+//w{4}//s?");  
  45.         System.out.println(flag7);  
  46.         String str8 = "   erefff    ";  
  47.         boolean flag8 = str8.matches("//s+//S+//s+");  
  48.         System.out.println(flag8);  
  49.         String str9 = "456776888";  
  50.         boolean flag9 = str9.matches("//d+");  
  51.         System.out.println(flag9);  
  52.         String str10 = "rtydfgrgwvr  ";  
  53.         boolean flag10 = str10.matches("//D+");  
  54.         System.out.println(flag10);  
  55.         /*  
  56.          * 自定義字元集合 [ ]  
  57.          */  
  58.         String str11 = "fdfeetg  34566";  
  59.         boolean flag11 = str11.matches("[fdetg]+//s+[3-6]+");  
  60.         System.out.println(flag11);  
  61.         String str12 = "rtyuie   5768";  
  62.         boolean flag12 = str12.matches("[^abcdf]+//s+[^1234]+");  
  63.         System.out.println(flag12);  
  64.         /*  
  65.          * 匹配次數限定符  
  66.          */  
  67.         //貪婪模式  
  68.         String str13 = "ytreggcv454444444333";  
  69.         boolean flag13 = str13.matches("//w{20}");  
  70.         System.out.println(flag13);  
  71.         boolean flag14 = str13.matches("//w{10,21}");  
  72.         System.out.println(flag14);  
  73.         boolean flag15 = str13.matches("//w{18,}");  
  74.         System.out.println(flag15);  
  75.         String str14 = "4";  
  76.         boolean flag16 = str14.matches("//d?");  
  77.         System.out.println(flag16);  
  78.         String str15 = "ddcvgt";  
  79.         boolean flag17 = str15.matches("//D+//d?");  
  80.         System.out.println(flag17);  
  81.         String str16 = "e33tf44t44t";  
  82.         boolean flag18 = str16.matches("//w+//W*");  
  83.         System.out.println(flag18);  
  84.         //勉強模式(只舉一例)  
  85.         String str17 = "34567ghjkkld";  
  86.         boolean flag19 = str17.matches("//d{2,7}?//w{8,11}");  
  87.         System.out.println(flag19);  
  88.         //佔有模式(只舉一例)  
  89.         String str18 = "22222ddddd";  
  90.         boolean flag20 = str18.matches("//d{2,5}+//w{6}");  
  91.         System.out.println(flag20);  
  92.         /*  
  93.          * 字元邊界  
  94.          */  
  95.         String str19 = "a444545rot44tm";  
  96.         boolean flag21 = str19.matches("^a//w+m$");  
  97.         System.out.println(flag21);  
  98.         /*  
  99.          * 選擇表示式 xxx | xxx  
  100.          */  
  101.         String str20 = "abc123abc";  
  102.         boolean flag22 = str20.matches("(abc|123){3}");  
  103.         System.out.println(flag22);  
  104.         /*  
  105.          * 分組 ( ).  
  106.          * 以上修飾符都是針對一個字元進行修飾.如果要對一組字元進行  
  107.          * 修飾就要用到()  
  108.          */  
  109.         String str21 = "123qwe123qwe";  
  110.         boolean flag23 = str21.matches("(123qwe){2}");  
  111.         System.out.println(flag23);  
  112.         /*  
  113.          * []中的交集與並集  
  114.          */  
  115.         String str22 = "abcdefgh1234567";  
  116.         boolean flag24 = str22.matches("[a-z1-9]+");        //並集  
  117.         System.out.println(flag24);  
  118.         boolean flag25 = str22.matches("[a-z1-9&&[a-h1-7]]+"); //交集  
  119.         System.out.println(flag25);  
  120.     }  
  121. }  
結果程式碼 
  1. -->45-->345-->  
  2. true  
  3. true  
  4. true  
  5. true  
  6. true  
  7. true  
  8. true  
  9. true  
  10. true  
  11. true  
  12. true  
  13. true  
  14. true  
  15. true  
  16. true  
  17. true  
  18. true  
  19. true  
  20. false  
  21. true  
  22. true  
  23. true  
  24. true  
  25. true  

相關推薦

java表示式運用例項(Stringmatches方法演示)

java中正則表示式運用例項(參看java中正則表示式運用詳解): 測試程式碼  package test;   /**    * 在String的matches()方法,split()方法中使用正則表示式.    * @author fhd001    */   pu

java表示式的瞭解與實踐記錄

Pattern pattern = Pattern.compile("^\\S+/q/"); Matcher matcher = pattern.matcher(resultString); String qrcode=""; while(matcher.find()){ String path

Java表示式相關Pattern和Matcher的使用

在Java中,java.util.regex包定義了正則表示式使用到的相關類,其中最主要的兩個類為:Pattern、Matcher:   Pattern 編譯正則表示式後建立一個匹配模式;   Matcher 使用Pattern例項提供的正則表示式對目標字串進行匹

Java 表示式

字元類: [abc] a、b 或 c [^abc] 任何字元,除了abc [a-zA-Z] a 到 z 或 A 到 Z ,兩頭的字母包括在內 [0-9] 0到9 的字元都包括 預定義字元類: . 任何字元 \d 數字:[0-9] 示例:判斷手機號的規則: String regex = “

1000行程式碼徒手寫表示式引擎【1】--JAVA表示式的使用

簡介: 本文是系列部落格的第一篇,主要講解和分析正則表示式規則以及JAVA中原生正則表示式引擎的使用。在後續的文章中會涉及基於NFA的正則表示式引擎內部的工作原理,並在此基礎上用1000行左右的JAVA程式碼,實現一個支援常用功能的正則表示式引擎。它支援貪婪匹配和懶惰匹配;支援零寬度字元(如“\b”, “\B

Java表示式匹配的語法規則

, package com.fsti.icop.util.regexp; import java.util.regex.Matcher; import java.util.regex.Pattern; public final class RegExpValidatorUt

java表示式驗證日期

/** *正則表示式驗證日期格式     包括潤二月 **/ // public static void main(String[] args) { //  Pattern p = Pattern //      .compile("^((\\d{2}(([02468][

JAVA表示式的二次轉義

需求:格式化金額,替換伺服器返回的格式化字串中的”{0}”為金額 public class Test { public static void main(String[] args) { String unformattedMoney

Java表示式去除html標籤

    注:這是Java正則表示式去除html標籤方法。     private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定義sc

java表示式工具:Pattern和Macher

原地址 java.util.regex是一個用正則表示式所訂製的模式來對字串進行匹配工作的類庫包。 1.簡介: java.util.regex是一個用正則表示式所訂製的模式來對字串進行匹配工作的類庫包。 它包括兩個類:Pattern和Matcher

Java表示式的分割案例

import java.util.Scanner; public class SplitDemo {/**正則表示式的分割案例:*  在鍵盤錄入一個年齡,判斷是不是按照你要求的年齡段。* @param args*/public static void main(String

JAVA表示式總結

下表顯示了正則表示式的語法: 表 1.1 正則表示式語法 元字元 說明 . 匹配任何單個字元。例如正則表示式“b.g”能匹配如下字串:“big”、“bug”、“b g”,但是不匹配“buug”。  $ 匹配行結束符。例如正則表示式“EJB$”能夠匹配字串“I like EJB”的末尾,但是不

Java表示式常用方法彙總

眾所周知,在程式開發中,難免會遇到需要匹配、查詢、替換、判斷字串的情況發生,而這些情況有時又比較複雜,如果用純編碼方式解決,往往會浪費程式設計師的時間及精力。因此,學習及使用正則表示式,便成了解決這一矛盾的主要手段。 大 家都知道,正則表示式是一種可以用於模式匹配和替換的規

java表示式、Pattern和Matcher小結

  最近在實際開發中遇到了2個坑,都和正則表示式有關。一個是public String[] split(String regex),入參居然是正則表示式!!!另一個坑與Pattern、Matcher類的操作有關。都是對java的正則表示式不夠熟悉導致。特地整理一

Java表示式以及例項

1、 字元  a) x字元x。如‘a’代表字元a  b) \ \反斜線字元用\\代表一個\  c) \n換行符(‘\u000A’)  d) \r回車符(‘\u000D’) 2、 字元類  a) [abc] a、b或c(簡單類)  b) [^abc]除了a、b、c的任何字元  c) [a-zA

一個例項講解rename命令表示式的使用

rename命令用字串替換的方式批量改變檔名。今天以一個例子來具體寫一下自己遇到的問題並且解決的例子。希望對大家有幫助。 格式如下: rename 原字串  目標字串  檔案(列表) 原字串:將檔名需要替換的字串;目標字串:將檔名中含有的原字元替換成目標字串;檔案:

java使用表示式從一長串字元獲取一段特徵字串

只能說String工具類太強大,導致一直以來,幾乎沒怎麼用到過正則表示式,現在突然要用到,參考正則表示式語法,摸索一上午才搞出來。記錄分享一下,以免忘記 從一長串字元中,截取出邀請碼,我想很多人都遇到過。 String s = "邀請您加入隨心購,自動搜尋淘寶天貓優惠券!先領券,再購

java利用表示式提取字串的整數和小數部分

最近開發遇到一個新的東西,就是前端傳過來一個字串,需要將裡面的數字提取出來,倒騰了一天,最後還是沒有倒騰出來,最後還是借鑑大佬的方法。記錄一下。 首先是前端傳來的字串“小明通過掃碼向你付款100000.566元”其中暱稱和金額不是固定的,其他是固定的。 於是便考慮使用“通過掃碼向你付

java 利用表示式去處字串的所有空格

轉載自xcmercy的部落格 目標 去除字串中所有的空白字元,包括空格、製表符、回車符等所有空白字元 思路 根據字串長度,利用迴圈遍歷字串此方法太笨拙。這裡利用正則表示式,匹配所有的空白字元,然後將匹配到的空白字元替換為 “” 空串即可。 程式碼 private St

java中用表示式獲取一個指定的子字元在字串出現的指定次數的下標索引,並且進行字串分割

在開發中遇到這樣的一個報文: 00000123000003RQ0 ################ 000003 <tellerLvl0>0</><brc>3004</><fPIflag>0</><