本文目錄一覽:
- 1、Java Pattern的用法是什麼?
- 2、java中關於Pattern的一個方法
- 3、想利用java里pattern功能處理對多個關鍵字的匹配查詢
- 4、Java Pattern的用法是什麼
- 5、java Pattern 怎麼判斷大於某一個數字數值。
Java Pattern的用法是什麼?
java 中pattern為正則表達式的編譯表示形式。指定為字元串的正則表達式必須首先被編譯為此類的實例。然後,可將得到的模式用於創建 Matcher 對象,依照正則表達式,該對象可以與任意字元序列匹配。執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。例子如下:
Pattern p = Pattern.compile(“a*b”);
Matcher m = p.matcher(“aaaaab”);
boolean b = m.matches
在僅使用一次正則表達式時,可以方便地通過此類定義 matches 方法。此方法編譯表達式並在單個調用中將輸入序列與其匹配。
java 中pattern為正則表達式的編譯表示形式。指定為字元串的正則表達式必須首先被編譯為此類的實例。然後,可將得到的模式用於創建 Matcher 對象,依照正則表達式,該對象可以與任意字元序列匹配。執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。例子如下:
Pattern p = Pattern.compile(“a*b”);
Matcher m = p.matcher(“aaaaab”);
boolean b = m.matches
在僅使用一次正則表達式時,可以方便地通過此類定義 matches 方法。此方法編譯表達式並在單個調用中將輸入序列與其匹配。
java中關於Pattern的一個方法
Java程序正則表達式Pattern對象做為匹配模式對字元串展開匹配檢查,Pattern的方法如下: static Pattern compile(String regex),用案例具體說明用法:
import java.util.regex.*;
public class Replacement{
public static void main(String[] args) throws Exception {
// 生成一個Pattern,同時編譯一個正則表達式
Pattern p = Pattern.compile(“[/]+”);
//用Pattern的split()方法把字元串按”/”分割
String[] result = p.split(
“Kevin has seen《LEON》seveal times,because it is a good film.”
+”/ 凱文已經看過《這個殺手不太冷》幾次了,因為它是一部”
+”好電影。/名詞:凱文。”);
for (int i=0; iresult.length; i++)
System.out.println(result[i]);
}
}
/**輸出結果為:
*Kevin has seen《LEON》seveal times,because it is a good film.
*凱文已經看過《這個殺手不太冷》幾次了,因為它是一部好電影。
*名詞:凱文。
*很明顯,該程序將字元串按”/”進行了分段。
**/
想利用java里pattern功能處理對多個關鍵字的匹配查詢
Pattern pattern = Pattern.compile(“切”);
Matcher matcher = pattern.matcher(txt);
Matcher matcher2 = Pattern.compile(“蒸”).matcher(txt);
Matcher matcher3 = Pattern.compile(“煮”).matcher(txt);
Matcher matcher4 = Pattern.compile(“燉”).matcher(txt);
Matcher matcher5 = Pattern.compile(“炸”).matcher(txt);
boolean a = false;
boolean b = false;
boolean c = false;
boolean d = false;
boolean e = false;
while ((a = matcher.find())|| (b = matcher2.find())||(c = matcher3.find())||( d = matcher4.find())||(e = matcher5.find())) {
String msg =””;
if(a){
msg = “:” + matcher.group() + “:”;
}else if(b){
msg = “:” + matcher2.group() + “:”;
}else if(c){
msg = “:” + matcher3.group() + “:”;
}else if(d){
msg = “:” + matcher4.group() + “:”;
}else if(e){
msg = “:” + matcher5.group() + “:”;
}
System.out.println(msg);
}
只不過這樣比較麻煩,你可以自己精鍊下,我想知道,你提取關鍵字是不是只是想確定是否包含,如果是你可以不用這個方法
Java Pattern的用法是什麼
正則表達式中的特殊字元:
\\ 反斜杠
\t 間隔 (‘\u0009’)
\n 換行 (‘\u000A’)
\r 回車 (‘\u000D’)
\d 數字等價於[0-9]
\D 非數字等價於[^0-9]
\s 空白符號 [\t\n\x0B\f\r]
\S 非空白符號 [^\t\n\x0B\f\r]
\w 單獨字元 [a-zA-Z_0-9]
\W 非單獨字元 [^a-zA-Z_0-9]
\f 換頁符
\e Escape
\b 一個單詞的邊界
\B 一個非單詞的邊界
\G 前一個匹配的結束
^為限制開頭 ^java 條件限制為以Java為開頭字元
$為限制結尾 java$ 條件限制為以java為結尾字元
.為限制一個任意字元 java.. 條件限制為java後除換行外任意兩個字元加入特定限制條件
[a-z] 條件限制在小寫a to z範圍中一個字元
[A-Z] 條件限制在大寫A to Z範圍中一個字元
[a-zA-Z] 條件限制在小寫a to z或大寫A to Z範圍中一個字元
[0-9] 條件限制在小寫0 to 9範圍中一個字元
[0-9a-z] 條件限制在小寫0 to 9或a to z範圍中一個字元
[0-9[a-z]] 條件限制在小寫0 to 9或a to z範圍中一個字元(交集)
[]中加入^後加再次限制條件
[^a-z] 條件限制在非小寫a to z範圍中一個字元
[^A-Z] 條件限制在非大寫A to Z範圍中一個字元
[^a-zA-Z] 條件限制在非小寫a to z或大寫A to Z範圍中一個字元
[^0-9] 條件限制在非小寫0 to 9範圍中一個字元
[^0-9a-z] 條件限制在非小寫0 to 9或a to z範圍中一個字元
[^0-9[a-z]] 條件限制在非小寫0 to 9或a to z範圍中一個字元(交集)
在限制條件為特定字元出現0次以上時,可以使用「*」
J* 0個以上J
.* 0個以上任意字元
J.*D J與D之間0個以上任意字元
在限制條件為特定字元出現1次以上時,可以使用「+」
J+ 1個以上J
.+ 1個以上任意字元
J.+D J與D之間1個以上任意字元
在限制條件為特定字元出現有0或1次以上時,可以使用「?」
JA? J或者JA
出現限制為連續出現指定次數字元「{a}」
J{2} JJ
J{3} JJJ
文字a個以上,並且「{a,}」
J{3,} JJJ,JJJJ,JJJJJ,???(3次以上J並存)
文字a個以上,b個以下「{a,b}」
J{3,5} JJJ或JJJJ或JJJJJ
兩者取一「|」
J|A J或A
Java|Hello Java或Hello
「()」中規定一個組合類型比如,我查詢a
href=\”index.html\”index中a
href間的數據,可寫作(.+?)
String name = “”;
Pattern pattern = Pattern.compile(“(.)*(\\w\\sV[0-9]{3}R[0-9]{3}C[0-9]{2}(B[0-9]{3})?)”);
Matcher m = pattern.matcher(name);
if(m.matches()){
System.out.println(“相同”);
}else{
System.out.println(“不相同”);
}
java Pattern 怎麼判斷大於某一個數字數值。
方法一:利用正則表達式
public class Testone {
public static void main(String[] args){
String str=”123456″;
boolean result=str.matches(“[0-9]+”);
if (result == true) {
System.out.println(“該字元串是純數字”);}else{System.out.println(“該字元串不是純數字”);}}}方法二:利用Pattern.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Testone {
public static void main(String[] args){
String str=”123456″;
Pattern pattern = Pattern.compile(“[0-9]{1,}”);
Matcher matcher = pattern.matcher((CharSequence)str);
boolean result=matcher.matches();
System.out.println(“該字元串是純數字”);}else{System.out.println(“該字元串不是純數字”);}}}
原創文章,作者:KYDOB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/318097.html