首頁 > 軟體

JAVA正規表示式及字串的替換與分解相關知識總結

2021-06-21 16:01:05

JAVA正規表示式及字串的替換與分解

Java 提供了 java.util.regex 包來與正規表示式進行模式匹配
java.util.regex 包主要包括以下三個類:

Pattern 類:

pattern 物件是一個正規表示式的編譯表示。Pattern 類沒有公共構造方法。要建立一個 Pattern 物件,你必須首先呼叫其公共靜態編譯方法,它返回一個 Pattern 物件。該方法接受一個正規表示式作為它的第一個引數。

Matcher 類:

Matcher 物件是對輸入字串進行解釋和匹配操作的引擎。與Pattern 類一樣,Matcher 也沒有公共構造方法。你需要呼叫 Pattern 物件的 matcher 方法來獲得一個 Matcher 物件。

常用用法

  •  . :表示任何一個字元
  • d :\d 表示0~9任何一個字元 D:非0~9任何一個字元
  • s :\s 表示空格類字元
  • w:\w 表示可用於識別符號的字元(不包含美元符號)
  • p{lower}:\p {lower}表示小寫字母a—z
  • p{upper}:\p{upper}表示大寫字母
  • p{ascll}:\p{ascll}表示ascll字元
  • p{punct}:\p{punct}表示標點符號
  • [abc]:表示a b c 中的任何一個
  • [^abc]:表示除去 a b c 以外的任何字元
  • [a-zA-Z]:表示英文字母中的其中一個表示元字元或者普通字元,表示出現0次或者1次
  • X?:表示X出現0次或者1次
  • X*: 表示X出現0次或者無數次
  • X+ :表示 X出現1次或者多次
  • X{n}:表示X恰好出現n次
  • X{n,}:表示X至少出現n次
  • X{n,m}:表示X出現n次至m次

字串的替換

replaceAll方法返回一個字串,但是不改變當前字串

String result= "12hello567".replaceAll("\d+"," 你好 ");
你好hello 你好
public class ReplaceErrorWord {
public static void main(String args[ ]) { 
String str = "登入網站: 222.128.89.253";
Pattern pattern; 
Matcher matcher; 
String regex = "[\d]{1,3}[.][\d]{1,3}[.][\d]{1,3}[.][\d]{1,3}";
pattern = Pattern.compile(regex);//使用 regex 初試化模式物件 pattern
matcher = pattern.matcher(str);//得到檢索 str 的匹配物件 matcher
String IP="";
while(matcher.find()) {
IP= matcher.group();
System.out.print(matcher.start()+"位置出現:");
System.out.println(IP);
} 
System.out.printf("將%s 替換為 202.192.78.56n",IP);
String result = matcher.replaceAll("202.192.78.56");
System.out.println(result);
}
}

字串的分解

split()

import java.util.Scanner;
public class Xi{
    public static void main(String[] args){
        System.out.println("請輸入一行文字:");
        Scanner reader=new Scanner(System.in);
        String str=reader.nextLine();
        String regex = "[\s\d\p{Punct}]";
        String words[]=str.split(regex);
        for(int i = 0;i < words.length;i++){
            int m=i+1;
            System.out.println("單詞"+m+";"+words[i]);
        }
    }
}

到此這篇關於JAVA正規表示式及字串的替換與分解相關知識總結的文章就介紹到這了,更多相關JAVA正規表示式及字串的替換與分解內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com