å®ç°æ¹æ³ï¼
?
1
2
3
4
5
6
7
8
9
10
11
12
13
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代ç 示ä¾:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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代ç 示ä¾:
?
1
2
3
4
5
6
7
8
9
10
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代ç 示ä¾:
?
1
2
3
4
5
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()循ç¯æ¿æ¢æ
?
1
2
3
4
5
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æ¶,æå¯ä»¥ä½¿ç¨ã