本文目录一览:
- Java Pattern的用法是什么?
- java中关于Pattern的一个方法
- 想利用java里pattern功能处理对多个关键字的匹配查询
- Java Pattern的用法是什么
- 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}
JJJ{3}
JJJ 文字a个以上,并且「{a,}
」J{3,}
JJJ,JJJJ,JJJJJ,???(3次以上J并存) 文字a个以上,b个以下「{a,b}
」J{3,5}
JJJ或JJJJ或JJJJJ 两者取一「|
」J|A
J或AJava|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("该字符串不是纯数字");
}
}