java字元串正則匹配
① java如何用正則表達式完成字元串的匹配
String str="111.111.222.1"; //你要匹配的字元串
String regex = "\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}";//正則表達式
if (str.matches(regex)) {//字元串 滿足條件
}
② java正則表達式是什麼
java正則表達式是計算機科學的一個概念。正則表達式使用單個字元串來描述、匹配一系列符合某個句法規則的字元串。
在編寫處理字元串的程序或網頁時,經常會有查找符合某些復雜規則的字元串的需要。正則表達式就是用於描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼。
很可能你使用過Windows/Dos下用於文件查找的通配符(wildcard),也就是*和?。如果你想查找某個目錄下的所有的Word文檔的話,你會搜索*.doc。在這里,*會被解釋成任意的字元串。
和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復雜——比如你可以編寫一個正則表達式,用來查找所有以0開頭,後面跟著2-3個數字,然後是一個連字型大小「-」,最後是7或8位數字的字元串(像010-12345678或0376-7654321)。
正則表達式的基本操作:
正則表達式定義:符合一定規則的表達式。
作用:用於專門操作字元串。
特點:用於一些特定的符號來表示一些代碼操作。這樣就簡化書寫。所以學習正則表達式,就是在學習一些特殊符號的使用。
好處:可以簡化對字元串的復雜操作。
弊端:符號定義越多,正則越長,閱讀性越差。
③ JAVA正則表達式 匹配一段字元串
import java.util.regex.*;
public class Test1 {
public static void main(String[] args) {
Pattern p = Pattern.compile("[a-zA-Z]123456");
String a="A123456";
//String a="H545987"; //可以換成這個
Matcher m = p.matcher(a);//
System.out.println(m.matches());
}
}
根據是否正確返回true或false
④ JAVA正則表達式怎麼匹配所有符合要求的子字元串
Matcher matches= 源字元串.matcher(正則);
while (matches.find()) {
String found= matches.group();
System.out.println(found);
}
⑤ 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 正則匹配字元為純數字方法:
定義正則表達式為:
String reg="^\\d+$"
獲取要判斷的字元串:
String str;//可以通過Scanner從控制台輸入,也可以用字元串常量進行初始化
調用字元串的matches方法判斷字元串為純數字情況:
str.matches(reg);
如果是純數字返回為true,否則返回為false;
⑦ java 正則匹配字元是否為純數字
java 正則匹配字元為純數字方法:
定義正則表達式為:
Stringreg="^\d+$"
獲取要判斷的字元串:
Stringstr;//可以通過Scanner從控制台輸入,也可以用字元串常量進行初始化
調用字元串的matches方法判斷字元串為純數字情況:
str.matches(reg);
如果是純數字返回為true,否則返回為false;
⑧ java通過正則匹配字元串只包含哪些字元
用java正則表達式檢測字元串中含有某字元方法:<pre t="code" l="java">public class Test {
public static void main(String[] args) {
String str="Hello World"; //待判斷的字元串
String reg=".*ll.*"; //判斷字元串中是否含有ll
System.out.println(str.matches(reg));
}
}
⑨ java 正則表達式匹配包含字元串
這個問題不用正則表達式,用JavaString類的contains函數就可以解決了。
具體的Java程序代碼如下:
publicclassCB{
publicstaticvoidcheck(Stringsource,Stringtarget){
booleanflag=false;
inti;
for(i=0;i<source.length();i++){
if(!target.contains(source.charAt(i)+"")){
break;
}
}
if(i==source.length())flag=true;
if(flag==true){
System.out.println(source+"和"+target+"匹配");
}else{
System.out.println(source+"和"+target+"不匹配");
}
}
publicstaticvoidmain(String[]args){
check("6482","600000");
check("6482","006400");
check("6482","020864");
}
}
運行結果:
6482和600000不匹配
6482和006400不匹配
6482和020864匹配
⑩ java正則表達式匹配數字後帶點的
java 正則匹配字元為數字後帶點的方法步驟:
第一步:定義正則表達式為:
String reg="[0-9.]"
第二步:獲取要判斷的字元串:
String str;//可以通過Scanner從控制台輸入,也可以用字元串常量進行初始化
第三步:調用字元串的matches方法判斷字元串為數字後面帶點的情況:
str.matches(reg);
如果是符合條件,返回為true,否則返回為false;