javapattern,java pattern用法

发布时间:2022-11-20

本文目录一览:

  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("该字符串不是纯数字");
    }
}