久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Java正則表達式提取字符的方法實例

      正好遇到一個需求需要將字符串中特定的字符全部提取出來,這個如果是按常規(guī)的字符串處理的話非常的繁瑣。于是想到用正則表達式來完成。項目需求是這樣的:需要提取車牌號中最后一個數(shù)字,比如說:蘇A7865提取5,蘇A876X提取6

      實現(xiàn)方法:

        import java.util.regex.Matcher;  import java.util.regex.Pattern;  public class Test {  public static void main(String[] args) {  String s = "A876X";  // 把要匹配的字符串寫成正則表達式,然后要提取的字符使用括號括起來  // 在這里,我們要提取最后一個數(shù)字,正則規(guī)則就是“一個數(shù)字加上大于等于0個非數(shù)字再加上結(jié)束符”  Pattern pattern = Pattern.compile("(\d)[^\d]*$");  Matcher matcher = pattern.matcher(s);  if(matcher.find())  System.out.println(matcher.group(1));  }  }

      關(guān)于Matcher 中的幾個方法說明:

      Mathcer.start()/ Matcher.end()/ Matcher.group()
      當使用matches(),lookingAt(),find()執(zhí)行匹配操作后,就可以利用以上三個方法得到更詳細的信息.
      start()返回匹配到的子字符串在字符串中的索引位置.
      end()返回匹配到的子字符串的最后一個字符在字符串中的索引位置.
      group()返回匹配到的子字符串

      Java代碼示例:

        Pattern p=Pattern.compile(“d+”);   Matcher m=p.matcher(“aaa2223bb”);   m.find();//匹配2223   m.start();//返回3   m.end();//返回7,返回的是2223后的索引號   m.group();//返回2223  Mathcer m2=p.matcher(“2223bb”);   m2.lookingAt(); //匹配2223   m2.start(); //返回0,由于lookingAt()只能匹配前面的字符串,所以當使用lookingAt()匹配時,start()方法總是返回0   m2.end(); //返回4   m2.group(); //返回2223  Matcher m3=p.matcher(“2223”); //如果Matcher m3=p.matcher(“2223bb”); 那么下面的方法出錯,因為不匹配返回false   m3.matches(); //匹配整個字符串   m3.start(); //返回0   m3.end(); //返回3,原因相信大家也清楚了,因為matches()需要匹配所有字符串   m3.group(); //返回2223

      說了這么多,相信大家都明白了以上幾個方法的使用,該說說正則表達式的分組在java中是怎么使用的.
      start(),end(),group()均有一個重載方法它們是start(int i),end(int i),group(int i)專用于分組操作,Mathcer類還有一個groupCount()用于返回有多少組.

      Java代碼示例:

        Pattern p=Pattern.compile(“([a-z]+)(d+)”);   Matcher m=p.matcher(“aaa2223bb”);   m.find(); //匹配aaa2223   m.groupCount(); //返回2,因為有2組   m.start(1); //返回0 返回第一組匹配到的子字符串在字符串中的索引號   m.start(2); //返回3   m.end(1); //返回3 返回第一組匹配到的子字符串的最后一個字符在字符串中的索引位置.   m.end(2); //返回7   m.group(1); //返回aaa,返回第一組匹配到的子字符串   m.group(2); //返回2223,返回第二組匹配到的子字符串

      現(xiàn)在我們使用一下稍微高級點的正則匹配操作,例如有一段文本,里面有很多數(shù)字,而且這些數(shù)字是分開的,我們現(xiàn)在要將文本中所有數(shù)字都取出來,利用java的正則操作是那么的簡單.

      Java代碼示例:

        Pattern p=Pattern.compile(“d+”);   Matcher m=p.matcher(“我的QQ是:456456 我的電話是:0532214 我的郵箱是:aaa123@aaa.com”);   while(m.find()) {   System.out.println(m.group());   }

      輸出:

      456456
      0532214
      123

      如將以上while()循環(huán)替換成

        while(m.find()) {   System.out.println(m.group());   System.out.print(“start:”+m.start());   System.out.println(” end:”+m.end());   } 

      則輸出:

      456456
      start:6 end:12
      0532214
      start:19 end:26
      123
      start:36 end:39

      現(xiàn)在大家應(yīng)該知道,每次執(zhí)行匹配操作后start(),end(),group()三個方法的值都會改變,改變成匹配到的子字符串的信息,以及它們的重載方法,也會改變成相應(yīng)的信息.

      注意:只有當匹配操作成功,才可以使用start(),end(),group()三個方法,否則會拋出java.lang.IllegalStateException,也就是當matches(),lookingAt(),find()其中任意一個方法返回true時,才可以使用。

      以上內(nèi)容給介紹了Java正則表達式提取字符的方法實例,希望對大家有所幫助。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號