本文目錄一覽:
java中如何對兩個字元串數組進行匹配?
導入java.util.regex
String[] array=new String[]{「cbb」,”caa”,”dsa”};
String regex=”^cb*”; //表示以c開頭有多個b的字元串
for(String str:array){
if(Str.matches(regex)) {
System.out.println(str);
}
輸出結果為cbb,因為其他的符合要求,純手打
java正則匹配語句中特定單詞
使用正則表達式的 「零寬度正回顧後發斷言「這個正則就是匹配以某個指定字元開頭的欄位,具體定義你可以去搜索一下,java代碼如下:
String target = “scoreboard objectives setdisplay sidebar R_HT_win”;
Pattern pattern = Pattern.compile(“(?=scoreboard objectives setdisplay sidebar\\s{1})\\w*”);
Matcher matcher = pattern.matcher(target);
String result = null;
if (matcher.find()){
int startIndex = matcher.start();
int endIndex = matcher.end();
result = target.substring(startIndex,endIndex);
}
System.out.println(result);
java中怎麼判斷匹配情況?
能匹配任何字元串,比如1、a、sdf、3adfs、kfgfh等等,也能匹配m1、wapdd等m、wap開頭的。但是排除m、wap的情況。
括弧匹配問題:大部分情況是有括弧和花括弧在一起的一對一對的,就跟情侶一樣的。
然後分號就是和括弧一對一的出現的
凡出現左括弧,則進棧。
凡出現右括弧,首先檢查棧是否空若棧空,則表明該「右括弧」多餘,否則和棧頂元素比較。若相匹配,則「左括弧出棧」, 否則表明不匹配。
表達式檢驗結束時,若棧空,則表明表達式中匹配正確,否則表明「左括弧」有餘。
java編程語言:
Java 編程語言的風格十分接近C、C++語言。
Java是一個純的面向對象的程序設計語言,它繼承了 C++ 語言面向對象技術的核心,Java捨棄了C ++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以介面取代)等特性,增加了垃圾回收器功能用於回收不再被引用的對象所佔據的內存空間,使得程序員不用再為內存管理而擔憂。
在 Java SE 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數和自動裝/拆箱等語言特性。
Java 不同於一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成二進位位元組碼(bytecode),然後依賴各種不同平台上的虛擬機來解釋執行位元組碼,從而實現了「一次編譯、到處執行」的跨平台特性。不過,每次的編譯執行需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。但在 J2SE 1.4.2 發布後,Java 的執行速度有了大幅提升。
請問JAVA中正則表達式匹配怎麼實現的!
Java中正則表達式匹配的語法規則:
以下是整理出來的Java下運用正則表達式實現匹配的程序案例,代碼如下:
package org.luosijin.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 正則表達式
* @version V5.0
* @author Admin
* @date 2015-7-25
*/
public class Regex {
/**
* @param args
* @author Admin
* @date 2015-7-25
*/
public static void main(String[] args) {
Pattern pattern = Pattern.compile(“b*g”);
Matcher matcher = pattern.matcher(“bbg”);
System.out.println(matcher.matches());
System.out.println(pattern.matches(“b*g”,”bbg”));
//驗證郵政編碼
System.out.println(pattern.matches(“[0-9]{6}”, “200038”));
System.out.println(pattern.matches(“//d{6}”, “200038”));
//驗證電話號碼
System.out.println(pattern.matches(“[0-9]{3,4}//-?[0-9]+”, “02178989799”));
getDate(“Nov 10,2009”);
charReplace();
//驗證身份證:判斷一個字元串是不是身份證號碼,即是否是15或18位數字。
System.out.println(pattern.matches(“^//d{15}|//d{18}$”, “123456789009876”));
getString(“D:/dir1/test.txt”);
getChinese(“welcome to china,江西奉新,welcome,你!”);
validateEmail(“luosijin123@163.com”);
}
/**
* 日期提取:提取出月份來
* @param str
* @author Admin
* @date 2015-7-25
*/
public static void getDate(String str){
String regEx=”([a-zA-Z]+)|//s+[0-9]{1,2},//s*[0-9]{4}”;
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
if(!matcher.find()){
System.out.println(“日期格式錯誤!”);
return;
}
System.out.println(matcher.group(1)); //分組的索引值是從1開始的,所以取第一個分組的方法是m.group(1)而不是m.group(0)。
}
/**
* 字元替換:本實例為將一個字元串中所有包含一個或多個連續的「a」的地方都替換成「A」。
*
* @author Admin
* @date 2015-7-25
*/
public static void charReplace(){
String regex = “a+”;
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(“okaaaa LetmeAseeaaa aa booa”);
String s = matcher.replaceAll(“A”);
System.out.println(s);
}
/**
* 字元串提取
* @param str
* @author Admin
* @date 2015-7-25
*/
public static void getString(String str){
String regex = “.+/(.+)$”;
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
if(!matcher.find()){
System.out.println(“文件路徑格式不正確!”);
return;
}
System.out.println(matcher.group(1));
}
/**
* 中文提取
* @param str
* @author Admin
* @date 2015-7-25
*/
public static void getChinese(String str){
String regex = “[//u4E00-//u9FFF]+”;//[//u4E00-//u9FFF]為漢字
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
while(matcher.find()){
sb.append(matcher.group());
}
System.out.println(sb);
}
/**
* 驗證Email
* @param email
* @author Admin
* @date 2015-7-25
*/
public static void validateEmail(String email){
String regex = “[0-9a-zA-Z]+@[0-9a-zA-Z]+//.[0-9a-zA-Z]+”;
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(email);
if(matcher.matches()){
System.out.println(“這是合法的Email”);
}else{
System.out.println(“這是非法的Email”);
}
}
}
java中怎麼匹配字元串
匹配方式(其中每個方式對應RegUtil.java中的一個方法)代碼:
package test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegUtil {
/**
* 方式一:基本正則表達式實現
* @param str
* @param reg
* @return
*/
public static boolean matchMatcher(String str,String reg){
Pattern pattern =Pattern.compile(reg);
Matcher matcher=pattern.matcher(str);
return matcher.matches();
}
/**
* 方式二:利用Pattern自帶實現
* @param str
* @param reg
* @return
*/
public static boolean matchPattern(String str,String reg){
return Pattern.matches(reg, str);
}
/**
* 方式三:String自帶實現
* @param str
* @param reg
* @return
*/
public static boolean matchStr(String str,String reg){
return str.matches(reg);
}
}
對應單元測試代碼如下:
package test;
import org.junit.Assert;
import org.junit.Test;
public class TestReg {
@Test
public void testParttern(){
Assert.assertTrue(RegUtil.matchMatcher(“123”, “//d+”));
Assert.assertTrue(RegUtil.matchPattern(“123”, “//d+”));
Assert.assertTrue(RegUtil.matchStr(“123”, “//d+”));
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246342.html