java正則表達式提取
⑴ java 正則表達式 提取數據
類似這種,就不要用什麼正則表達式了。
直接String[] ss = str.split(",");
Map m= new HashMap();
for(String s:ss){
String [] ts = s.split(":");
m.put(ts[0],ts[1]);
}
然後你想用name屬性,就直接m.get("name");就取到了
⑵ java 怎麼利用正則表達式從給定的字元串中取出匹配規則字元串
利用正則表達式從給定的字元串中取出符合匹配規則的字元串的Java程序如下:
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassE{
publicstaticvoidmain(String[]args){
Patternp=Pattern.compile("[A-Za-z]+");//設定匹配規則為取出字元串中的字母
Matcherm=p.matcher("12sifiwq820aufu");//與字元串匹配
while(m.find()){
System.out.println(m.group());
}
}
}
運行結果:
sifiwq
aufu
⑶ java正則表達式截取字元串
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassHello{
publicstaticvoidmain(String[]args){
Stringre="\[([^\]]+)\]";
Stringstr="[您好],abcdefg,[abc]";
Patternp=Pattern.compile(re);
Matcherm=p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}
}
}
將m.group(1)組建成你自己想要的格式就好了
⑷ java 怎麼利用正則表達式從給定的字元串中取出匹配規則字元串
java正則提取需要用到Matcher類,下面給出案例示例供參考
需要提取車牌號中最後一個數字,比如說:蘇A7865提取5,蘇A876X提取6
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassTest{
publicstaticvoidmain(String[]args){
Strings="A876X";
//把要匹配的字元串寫成正則表達式,然後要提取的字元使用括弧括起來
//在這里,我們要提取最後一個數字,正則規則就是「一個數字加上大於等於0個非數字再加上結束符」
Patternpattern=Pattern.compile("(\d)[^\d]*$");
Matchermatcher=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()返回匹配到的子字元串
示例代碼如下,具體功能請參考注釋
Patternp=Pattern.compile(「d+」);
Matcherm=p.matcher(「aaa2223bb」);
m.find();//匹配2223
m.start();//返回3
m.end();//返回7,返回的是2223後的索引號
m.group();//返回2223
Mathcerm2=p.matcher(「2223bb」);
m2.lookingAt();//匹配2223
m2.start();//返回0,由於lookingAt()只能匹配前面的字元串,所以當使用lookingAt()匹配時,start()方法總是返回0
m2.end();//返回4
m2.group();//返回2223
Matcherm3=p.matcher(「2223」);//如果Matcherm3=p.matcher(「2223bb」);那麼下面的方法出錯,因為不匹配返回false
m3.matches();//匹配整個字元串
m3.start();//返回0
m3.end();//返回3,原因相信大家也清楚了,因為matches()需要匹配所有字元串
m3.group();//返回2223
另外,Mathcer類中start(),end(),group()均有一個重載方法它們是start(int i),end(int i),group(int i)專用於分組操作,Mathcer類還有一個groupCount()用於返回有多少組.
示例如下:
Patternp=Pattern.compile(「([a-z]+)(d+)」);
Matcherm=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,返回第二組匹配到的子字元串
注意: 只有當匹配操作成功,才可以使用start(),end(),group()三個方法,否則會拋出java.lang.IllegalStateException,也就是當matches(),lookingAt(),find()其中任意一個方法返回true時,才可以使用。
⑸ java正則表達式如何獲取字元串中所有匹配內容
java正則表達式提取需要用到Matcher類。
⑹ java正則表達式如何獲取字元串中所有匹配內容
一、正則表達式基礎知識
1.1 句點符號
在玩英文拼字游戲,想要找出三個字母的單詞,而且這些單詞必須以「t」字母開頭,以「n」字母結束。另外,假設有一本英文字典,可以用正則表達式搜索全部內容。要構造出這個正則表達式,可以使用一個通配符——句點符號「.」。這樣,完整的表達式就是「t.n」,匹配「tan」、「ten」、「tin」和「ton」,還匹配「t#n」、「tpn」甚至「t n」,還有其許多無意義的組合。這是因為句點符號匹配所有字元,包括空格、Tab字元甚至換行符:
1.3 「或」符號
如果除了上面匹配的所有單詞之外,還想要匹配「toon」,那麼,可以使用「|」操作符。「|」操作符的基本意義就是「或」運算。要匹配「toon」,使用「t(a|e|i|o|oo)n」正則表達式。這里不能使用方擴號,因為方括弧只允許匹配單個字元;這里必須使用圓括弧「()」。圓括弧還可以用來分組。
1.4 表示匹配次數的符號
下表顯示了正則表達式的語法:
表 1.1 正則表達式語法