javapattern用法,java中pattern的用法
java中关于Pattern的一个方法
你的用法有问题,spilt()方法是用来分割字符串的,而你想要的结果应该是匹配字符串,匹配应该用find(),group(),如下:
public
static
void
main(String[]
args)
{
Pattern
p
=
Pattern.compile("\\w{3}");
String
matchedString
=
"qwedfg";
//
重新给出待匹配的字符序列
Matcher
m
=
p.matcher(matchedString);
String[]
a
=
p.split(matchedString);
while(m.find())
{
System.out.println(m.group());
}
}
输出结果为:
qwe
dfg
spilt()方法的试用实例:
public
static
void
main(String[]
args)
{
Pattern
p
=
Pattern.compile(",");
String
matchedString
=
"abc,def,asdf,aer,wtw,sfa";
//
重新给出待匹配的字符序列
String[]
a
=
p.split(matchedString);
System.out.println(a.length);
for(int
i=0;ia.length;i++)
{
System.out.println(a[i]);
}
}
输出结果为:
6
abc
def
asdf
aer
wtw
sfa
java.util.regex中的pattern 和 matcher的用法
Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。用法如下:
(字符串:"abc",正则表达式:?"[a-z]{3}")?
?String类的方法:
?boolean??b??=?"abc".matches("[a-z]{3}"?
System.out.println(b);????????????????
Pattern类中的方法:
?boolean??b??=?Pattern.matches("[a-z]{3}","abc");?
System.out.println(b);???????????????
?Matcher类中的方法:
?Pattern?p?=?Pattern.compile("[a-z]{3}");?
Matcher?m?=?p.matcher("acc");?
boolean??b??=m.matches()?
System.out.println(b);?????????????????????????????????????
?得到的结果都为true。
java正则pattern的正确用法怎么用
public static String extractNumber(String input){
StringBuilder numberStr=new StringBuilder();
//Pattern p=Pattern.compile("\\d+");
//意思是不要在方法体内定义Pattern变量,直接像下面这样调用静态方法就行了
Matcher m=Pattern.compile("\\d+").matcher(input);
while(m.find()){
numberStr.append(m.group());
}
return numberStr.toString();
}
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和Matcher获取html代码中的一串字符
java使用pattern和Matcher获取html代码中的一串字符,主要是使用正则表达式来匹配html的标签,如下代码:
package?com.qiu.lin.he;
import?java.text.ParseException;
import?java.util.regex.Matcher;
import?java.util.regex.Pattern;
public?class?Ceshi?{
public?static?void?main(String[]?args)?throws?ParseException?{
String?string?=?"span?class=\"123class\"75757574/span/divspan?class=\"123class\"12312341243/span/div";
Pattern?pattern?=?Pattern.compile("([\\d]+)");//匹配html字符
Matcher?matcher?=?pattern.matcher(string);
if?(matcher.find())?{
matcher.reset();
while?(matcher.find())?{//找到匹配的字符串
System.out.println("hit:?"?+?matcher.group(1));
}
}?else?{
System.out.println("[ERROR]?NOT?FOUND!");
}
}
}
结果如下:
Java.util.regex中matcher 和pattern的用法
这是我的总结:
java.lang包中的String类,java.util.regex包中的Pattern,Matcher类中都有matches()方法。
都与正则表达式有关。下面我分别举例:(字符串:"abc",正则表达式: "[a-z]{3}")
String类的方法:
boolean b = "abc".matches("[a-z]{3}"
System.out.println(b);
Pattern类中的方法:
boolean b = Pattern.matches("[a-z]{3}","abc");
System.out.println(b);
Matcher类中的方法:
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("acc");
boolean b =m.matches()
System.out.println(b);
得到的结果都为true。