大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java正則表達式數字提取和方法實例

Java正則表達式數字提取和方法實例

更新時間:2021-05-18 16:55:56 來源:動力節點 瀏覽2069次

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

實現方法:

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

關于Matcher中的幾個方法說明:

Mathcer.start()/Matcher.end()/Matcher.group()

當使用matches(),lookingAt(),find()執行匹配操作后,就可以利用以上三個方法得到更詳細的信息.

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,返回第二組匹配到的子字符串

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

Java代碼示例:

Pattern p=Pattern.compile(“\d+”); 
Matcher m=p.matcher(“我的QQ是:456456 我的電話是:0532214 我的郵箱是:[email protected]”); 
while(m.find()) { 
System.out.println(m.group()); 
}

輸出:

456456

0532214

123

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

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

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

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

以上就是動力節點小編介紹的"Java正則表達式數字提取和方法實例",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 精品亚洲综合在线第一区 | 国产欧美一区二区 | 女人牲交视频一级毛片 | 精品自拍视频在线观看 | 一区二区三区四区亚洲 | 黄色一级免费网站 | 久久精品免费全国观看国产 | 国产一区在线免费观看 | 无码免费一区二区三区免费播放 | 99视频全部看免费观 | 奇米777狠狠色噜噜狠狠狠 | 大尺度福利视频在线观看网址 | 欧美日韩在线观看区一二 | 2019国产精品视频 | 国产精品国产色综合色 | 久久线看观看精品香蕉国产 | 理论一级片 | 伊人成年综合网 | 成人爽a毛片在线视频网站 成人爽视频 | 99日韩| 毛片免费在线视频 | 免费黄色在线 | 成人国产亚洲 | 欧美狠狠入鲁的视频极速 | 国产亚洲欧洲国产综合一区 | 欧美一级免费看 | 欧美日韩国产在线人成 | 97久久精品国产成人影院 | 91亚洲国产成人精品性色 | 四虎影院新地址 | 在线高清一级欧美精品 | 欧美大屁股精品毛片视频 | 国产毛片久久久久久国产毛片 | 国产精品久久久久久久牛牛 | 四虎影视免费在线 | 苦瓜se影院在线视频网站 | 欧美在线观看a | 日韩午夜在线观看 | 偷自拍视频区综合视频区 | 久热这里只有精品在线 | 操她视频网站 |