Java基于正則表達(dá)式實(shí)現(xiàn)查找匹配的文本功能【經(jīng)典實(shí)例】
本文實(shí)例講述了Java基于正則表達(dá)式實(shí)現(xiàn)查找匹配的文本功能。分享給大家供大家參考,具體如下:
REMatch.java:
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()將會(huì)返回整個(gè)匹配的字符串(完全匹配);group(i)則會(huì)返回與分組i匹配的字符
// 這個(gè)例子只有一個(gè)分組
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運(yùn)行結(jié)果如下圖:

REMatchTwoFields.java:
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得到的是整個(gè)原字符串
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運(yùn)行結(jié)果如下圖:

PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線(xiàn)測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線(xiàn)生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
一次"java:程序包org.aspectj.lang不存在"問(wèn)題解決實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了一次"java:程序包org.aspectj.lang不存在"問(wèn)題解決的實(shí)戰(zhàn)過(guò)程,這個(gè)錯(cuò)誤提示意味著你的Java程序中引用了org.aspectj.lang這個(gè)包,但是該包并不存在,文章通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
一起來(lái)學(xué)習(xí)Java IO的轉(zhuǎn)化流
這篇文章主要為大家詳細(xì)介紹了Java IO的轉(zhuǎn)化流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
SpringCloud集成和使用OpenFeign的教程指南
在微服務(wù)架構(gòu)中,服務(wù)間的通信是至關(guān)重要的,SpringCloud作為一個(gè)功能強(qiáng)大的微服務(wù)框架,為我們提供了多種服務(wù)間通信的方式,其中,OpenFeign是一個(gè)聲明式的Web服務(wù)客戶(hù)端,它使得編寫(xiě)Web服務(wù)客戶(hù)端變得更加簡(jiǎn)單,本文將詳細(xì)介紹如何在SpringCloud項(xiàng)目中集成和使用OpenFeign2024-10-10
如何解決使用restTemplate進(jìn)行feign調(diào)用new HttpEntity<>報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了如何解決使用restTemplate進(jìn)行feign調(diào)用new HttpEntity<>報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
SpringBoot中的@ConditionalOnMissingBean注解使用詳解
這篇文章主要介紹了SpringBoot中的@ConditionalOnMissingBean注解使用詳解,@ConditionalOnMissingBean作用在@Bean定義上,也就是說(shuō)在容器加載它作用的Bean時(shí),檢查容器中是否存在目標(biāo)類(lèi)型,需要的朋友可以參考下2024-01-01
Mybatis控制臺(tái)打印SQL執(zhí)行信息的方法詳解
SQL性能監(jiān)控是一個(gè)程序必要的功能,通常我們可以使用數(shù)據(jù)庫(kù)自帶的客戶(hù)端工具進(jìn)行SQL性能分析,本章節(jié)只實(shí)現(xiàn)Mybatis執(zhí)行時(shí)對(duì)執(zhí)行SQL進(jìn)行攔截,控制臺(tái)打印執(zhí)行SQL包括參數(shù)、執(zhí)行方法以及執(zhí)行時(shí)間,需要的朋友可以參考下2024-11-11

