當前位置:首頁 » 編程語言 » java正則字元串匹配字元串

java正則字元串匹配字元串

發布時間: 2022-11-13 00:18:09

1. 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匹配

2. java 怎麼利用正則表達式從給定的字元串中取出匹配規則字元串

java正則提取需要用到Matcher類,下面給出案例示例供參考

需要提取車牌號中最後一個數字,比如說:蘇A7865提取5,蘇A876X提取6
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()返回匹配到的子字元串
示例代碼如下,具體功能請參考注釋

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

另外,Mathcer類中start(),end(),group()均有一個重載方法它們是start(int i),end(int i),group(int i)專用於分組操作,Mathcer類還有一個groupCount()用於返回有多少組.
示例如下:

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,返回第二組匹配到的子字元串

注意: 只有當匹配操作成功,才可以使用start(),end(),group()三個方法,否則會拋出java.lang.IllegalStateException,也就是當matches(),lookingAt(),find()其中任意一個方法返回true時,才可以使用。

3. Java中正則表達式 匹配字元串

String regEx = "<a>([\s\S]*?)</a>";
String s = "<a>123</a><a>456</a><a>789</a>";
Pattern pat = Pattern.compile(regEx);
Matcher mat = pat.matcher(s);
boolean rs = mat.find();
for(int i=1;i<=mat.groupCount();i++){
System.out.println(mat.group(i));
}

4. java正則表達式 怎麼匹配字元串

你要先寫好正則表達式
單純判斷用String的matches()方法就可以了
public class Test {
public static void main(String[] args) {
String s = "1234";
s.matches("\\d*");//\\d*為正則表達式,數字出現零次或多次,返回boolean類型
}
}

5. java 怎麼利用正則表達式從給定的字元串中取出匹配規則字元串

import java.util.regex.*;
public class Email {
public static void main(String[] args) throws Exception {
String input = args[0];
//檢測輸入的EMAIL地址是否以 非法符號"."或"@"作為起始字元
Pattern p = Pattern.compile("^.|^@");
Matcher m = p.matcher(input);
if (m
//檢測是否以"www."為起始
p = Pattern.compile("^www.");
m = p.matcher(input);
if (m
//檢測是否包含非法字元
p = Pattern.compile("[^A-Za-z0-9.@_-~#]+");
m = p.matcher(input);
StringBuffer sb = new StringBuffer();
boolean result = m.find();
boolean deletedIllegalChars = false;
while(result) {
//如果找到了非法字元那麼就設下標記
deletedIllegalChars = true;
//如果裡麵包含非法字元如冒號雙引號等,那麼就把他們消去,加到SB裡面
m.appendReplacement(sb, "");
result = m.find();
}
m.appendTail(sb);
input = sb.toString();
if (deletedIllegalChars) {
System.out.println("輸入的EMAIL地址里包含有冒號、逗號等非法字元,請修改");
System.out.println("您現在的輸入為: "+args[0]);
System.out.println("修改後合法的地址應類似: "+input);
}
}
}

6. java正則匹配字元串的值

這個很簡單的:

Stringpatern=""code":"(\d+?)"";
Matchermatcher=Pattern.compile(patern).matcher(str);
while(matcher.find()){
System.out.println(matcher.group(1));
}

7. 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)) {//字元串 滿足條件

}

8. java 怎麼利用正則表達式從給定的字元串中取出匹配規則字元串

利用正則表達式從給定的字元串中取出符合匹配規則的字元串的Java程序如下:

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;

publicclassE{

publicstaticvoidmain(String[]args){

Patternp=Pattern.compile("[A-Za-z]+");//設定匹配規則為取出字元串中的字母

Matcherm=p.matcher("12sifiwq820aufu");//與字元串匹配

while(m.find()){

System.out.println(m.group());

}

}

}

運行結果:

sifiwq
aufu

9. java 怎麼利用正則表達式從給定的字元串中取出匹配規則字元串

publicstaticvoidmain(String[]agrs){Strings="{\"internal_1\":[{\"version\":4,\"addr\":\"192.160.1.11\"}]}";Stringregex=".+?\\[(.+?)\\].+?";Patternpattern=Pattern.compile(regex);Matchermatcher=pattern.matcher(s);if(matcher.matches()){Stringgroup=matcher.group(1);System.out.println(group);}else{System.out.println("nomatches!!");}}正則表達式:.+?\\[(.+?)\\].+?結果:{"version":4,"addr":"192.160.1.11"}

10. 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時,才可以使用。

熱點內容
hill密碼的加密 發布:2025-01-12 09:56:33 瀏覽:613
組卷源碼 發布:2025-01-12 09:51:12 瀏覽:995
java文件夾改名 發布:2025-01-12 09:49:01 瀏覽:115
腳本函數未定義 發布:2025-01-12 09:39:44 瀏覽:635
頁面PHP 發布:2025-01-12 09:38:07 瀏覽:200
郵政銀行打電話登錄密碼是什麼 發布:2025-01-12 09:37:27 瀏覽:563
linuxroot遠程登錄 發布:2025-01-12 09:37:26 瀏覽:302
怎麼算伺服器ip 發布:2025-01-12 08:59:19 瀏覽:854
安卓與ios哪個適合做主力機 發布:2025-01-12 08:54:11 瀏覽:341
微軟怎麼關閉配置更新 發布:2025-01-12 08:34:23 瀏覽:316