『壹』 java常用的幾個正則方法
JAVA中正則表達式處理字元串的四個常用方法:匹配、分割、替換、截取。其跟字元串的常用函數相似,但是使用正則表達式會更簡單、更加簡潔。下面是具體的例子:
1 public class TestRegex {
2
3 public static void main(String[] args) {
4 String str = "";
5 String regex = "";
6
7 // 匹配
8 regex = "[1-9][a-z]";
9 getMatches(str, regex);
10
11 // 分割
12 str = "1a:abc123:";
13 regex = ":";
14 getSpilt(str, regex);
15
16 // 替換
17 str = "1223334444aaabbc";
18 String oldChar = "(.)\1+";
19 regex = "$1";
20 getReplace(str, oldChar, regex);
21
22 // 截取
23 str = "urlabc123";
24 regex = "(.*)";
25 getSubstring(str, regex);
26
27 }
28
29 public static void getMatches(String str, String regex) {
30 System.out.println(str.matches(regex));
31 }
32
33 public static void getSpilt(String str, String regex) {
34 String[] array = str.split(regex);
35 for (String t : array) {
36 System.out.println(t);
37 }
38 }
39
40 public static void getReplace(String str, String oldChar, String regex)
{
41 System.out.println(str.replaceAll(oldChar, regex));
42 }
43
44 public static void getSubstring(String str, String regex) {
45 Pattern p = Pattern.compile(regex);
46 Matcher m = p.matcher(str);
47 if (m.find()) {
48 System.out.println(m.group(1));
49 }
50 }
51 }
『貳』 java正則表達式處理一段字元串得到指定字元後面的字元,
var b=""{hello:{"名字":"李四"}}""
var reg=new RegExp("李四","gi");
var a=ret.exec(b);
『叄』 java正則匹配出所有類方法
java正則表達式提取需要用到Matcher類。
正則規則就是「一個數字加上大於等於0個非數字再加上結束符」
Pattern pattern
= Pattern.compile("(\\d)[^\\d]*$")
Matcher matcher
= pattern.matcher(s)
if(matcher.find())
System.out.println
(matcher.group(1)); } }
『肆』 java正則表達式是什麼
java正則表達式是計算機科學的一個概念。正則表達式使用單個字元串來描述、匹配一系列符合某個句法規則的字元串。
在編寫處理字元串的程序或網頁時,經常會有查找符合某些復雜規則的字元串的需要。正則表達式就是用於描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼。
很可能你使用過Windows/Dos下用於文件查找的通配符(wildcard),也就是*和?。如果你想查找某個目錄下的所有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字元串。
和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復雜——比如你可以編寫一個正則表達式,用來查找所有以0開頭,後面跟著2-3個數字,然後是一個連字型大小「-」,最後是7或8位數字的字元串(像010-12345678或0376-7654321)。
正則表達式的基本操作:
正則表達式定義:符合一定規則的表達式。
作用:用於專門操作字元串。
特點:用於一些特定的符號來表示一些代碼操作。這樣就簡化書寫。所以學習正則表達式,就是在學習一些特殊符號的使用。
好處:可以簡化對字元串的復雜操作。
弊端:符號定義越多,正則越長,閱讀性越差。
『伍』 java工具類怎麼定義
工具類的定義是以util或utils結尾,裡麵包含的變數和方法都必須要是靜態的static方法,這樣才能提供別人調用。
『陸』 java 什麼叫工具類
是包含集合框架、遺留的 collection 類、事件模型、日期和時間設施、國際化和各種實用工具類(字元串標記生成器、隨機數生成器和位數組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時間處理模式、日期時間工具等各類常用工具包
『柒』 關於java工具類的理解 為什麼java要提出個工具類的概念,按照面向對象的思想為什麼不直接把工具
工具類其實就是對於String,Collection,IO等常用類的功能的擴展。比如IO讀寫文件。其實大多數時候我希望有一個文件路徑,然後調個方法就直接得到文件內容(字元串或者位元組數組形式)。
如果沒有工具類,那麼你每個讀文件的地方都有一段重復的代碼。所以,你肯定會被這個功能提取出來。那麼,你提取出來放哪兒呀?要知道這個功能可是在任何類都能調用的。所以,我們就放在FileUtil裡面了。
這樣,你以後讀取文件時,你就找FileUtil的read方法,直接調用即可。
為什麼要將方法和變數都寫成靜態的。因為,這些方法我只是想調用一下,不需要牽扯工具類中的任何屬性和變數,所以,我就沒有必要實例化了(new)。既然不需要實例化了,那麼就用靜態就行了。
『捌』 如何使用java的正則表達式提取html標簽
//我隨便寫了一個工具類,getRegexData就是那個方法,你可以根據你的需求稍加改動即可因為我使用的
//URL而不是HttpClient,所以數據是全部獲取過來了,你自己改改吧!不懂再問我
packagecom.wdy.util;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.URL;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*工具類
*@authorWDY
*
*/
publicclassTool{
publicstaticvoidmain(String[]args){
System.out.println(getRegexData("<img[]*src.*?jpg"","<imgsrc="img1.jpg"><imgsrc="img2.jpg""));
try{
URLurl=newURL("http://www..com");
StringstringData=getStringFromInputStream(url.openStream());
System.out.println(stringData+"----------------------------------------");
System.out.println();
System.out.println(getRegexData("http://.{6,70}?(png|jpg)",stringData));
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*給一個正則表達式,和數據,將正則匹配到的數據全數取出來
*
*@paramregex
*@paramdata
*@returnList<String>
*/
publicstaticList<String>getRegexData(Stringregex,Stringdata){
Patternpattern=Pattern.compile(regex);
Matchermatcher=pattern.matcher(data);
List<String>resultList=newArrayList<String>();
intindex=0;//搜索的位置
Stringtemp="";
/*從指定位置查找,如果找到了,就繼續執行下面的代碼*/
while(matcher.find(index)){
temp=matcher.group();//將匹配到的數據取出來放到集合中去
resultList.add(temp);
index+=temp.length();//將查找位置放到此時找到的數據後面
System.out.println(index);
}
returnresultList;
}
/**
*將輸入流裝成字元串
*@paramis
*@return
*/
(InputStreamis)throwsIOException{
StringBuildersbl=newStringBuilder();
byte[]buff=newbyte[1024*8];
intlen;
inti=0;
while((len=is.read(buff))!=-1){
sbl.append(newString(buff,0,len,"utf-8"));
System.out.println(i++);
}
System.out.println(sbl.length());
returnsbl.toString();
}
}
『玖』 java中正則表達式屬於哪個包
java.util.regex包
下面有兩個常用的正則表達式類
java.util.regex.Matcher
java.util.regex.Pattern
使用方式:
publicstaticvoidmain(String[]args){
//電話號碼
StringregexPattern="^(\d{3,4}-)?\d{6,8}(-\d{1,6})?$";
Patternpattern=Pattern.compile(regexPattern);
Matchermatcher=pattern.matcher("86771588-888");
System.out.println("是否匹配:"+matcher.matches());
}
結果:
是否匹配:true