本文實例講述了Java基于正則表達式實現查找匹配的文本功能。分享給大家供大家參考,具體如下:
REMatch.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
package reMatch; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank */ public class REMatch { public static void main(String[] args) { String patt = "Q[^u]\\d+\\." ; Pattern r = Pattern.compile(patt); String line = "Order QT300. Now! QT400." ; Matcher m = r.matcher(line); while (m.find()) { // group(0)或group()將會返回整個匹配的字符串(完全匹配);group(i)則會返回與分組i匹配的字符 // 這個例子只有一個分組 System.out.println(patt + " matches \"" + m.group( 0 ) + "\" in \"" + line + "\"" ); System.out.println( "start:" + m.start() + " end:" + m.end()); /* 輸出: Q[^u]\d+\. matches "QT300." in "Order QT300. Now! QT400." start:6 end:12 Q[^u]\d+\. matches "QT400." in "Order QT300. Now! QT400." start:18 end:24 */ } } } |
eclipse運行結果如下圖:
REMatchTwoFields.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package reMatchTwoFields; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank */ public class REMatchTwoFields { public static void main(String[] args) { String inputLine = "Adams,John Quincy" ; Pattern r = Pattern.compile( "(.*),(.*)" ); Matcher m = r.matcher(inputLine); if (!m.matches()) { throw new IllegalArgumentException( "Bad Input" ); } // 分組0得到的是整個原字符串 for ( int i = 0 ; i < m.groupCount() + 1 ; i++) { System.out.println( "分組" + i + ":" + m.group(i)); /* 輸出: 分組0:Adams,John Quincy 分組1:Adams 分組2:John Quincy */ } } } |
eclipse運行結果如下圖:
希望本文所述對大家java程序設計有所幫助。