javapattern用法,java中pattern的用法

http://www.itjxue.com  2023-01-15 10:39  来源:未知  点击次数: 

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。

(责任编辑:IT教学网)

更多

推荐浏览器文章