首页 > 编程知识 正文

javapattern,java pattern用法

时间:2023-12-27 22:27:30 阅读:326185 作者:KKQP

本文目录一览:

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 空白符号 [tnx0Bfr]

S 非空白符号 [^tnx0Bfr]

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。