java.util.regex中的pattern 和 matcher的用法
求一个pattern来match2种loop,一个是forloop符合的pattern的形式是for(-;-;-)还一个是whileloop要求的pattern是whil...
求 一个 pattern 来match 2种 loop, 一个是 for loop 符合的pattern的形式是
for (- ; - ; -)
还一个是while loop 要求的pattern是
while (- Boolean operator -) (里面要求是逻辑算子)
想用这个方法 去寻找 有几个 for 和while loop 在一个 文档中
还有一个问题就是 如何去计算 有几个单词 在一个string里面
例如"All Rights Reserved" 有3个单词, 只要是没有空格并且连续的字母后面可以跟符号或者是空格 都算是一个单词 展开
for (- ; - ; -)
还一个是while loop 要求的pattern是
while (- Boolean operator -) (里面要求是逻辑算子)
想用这个方法 去寻找 有几个 for 和while loop 在一个 文档中
还有一个问题就是 如何去计算 有几个单词 在一个string里面
例如"All Rights Reserved" 有3个单词, 只要是没有空格并且连续的字母后面可以跟符号或者是空格 都算是一个单词 展开
展开全部
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。
展开全部
Pattern
par
=
Pattern.compile("[0-1]*");
String
str1
=
"101010101010101001010101";
String
str2
=
"012000120120120";
Matcher
macher
=
par.matcher(str1);
System.out.println(macher.matches());
macher
=
par.matcher(str2);
System.out.println(macher.matches());
是用来比对正则表达式的
我的正则表达式是1和0可以出现1次或者N次
第一个肯定是正确的
第二个肯定是不正确的
par
=
Pattern.compile("[0-1]*");
String
str1
=
"101010101010101001010101";
String
str2
=
"012000120120120";
Matcher
macher
=
par.matcher(str1);
System.out.println(macher.matches());
macher
=
par.matcher(str2);
System.out.println(macher.matches());
是用来比对正则表达式的
我的正则表达式是1和0可以出现1次或者N次
第一个肯定是正确的
第二个肯定是不正确的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正则表达式的东西自己看看api就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Pattern p1 = Pattern.compile("for\\([^;]+;[^;]+;[^;]+\\)");
Pattern p2 = Pattern.compile("while\\([^\\)]+\\)");
public int find(String string) {
int num = 0, index = 0, state = 1;
String word = "[a-zA-Z]";
char[] c = string.toCharArray();
while (index < c.length) {
switch (state) {
case 1:
if (String.valueOf(c[index]).matches(word)) {
state = 2;
num++;
}
break;
case 2:
if (!String.valueOf(c[index]).matches(word)) {
state = 1;
}
break;
}
index++;
}
return num;
}
Pattern p2 = Pattern.compile("while\\([^\\)]+\\)");
public int find(String string) {
int num = 0, index = 0, state = 1;
String word = "[a-zA-Z]";
char[] c = string.toCharArray();
while (index < c.length) {
switch (state) {
case 1:
if (String.valueOf(c[index]).matches(word)) {
state = 2;
num++;
}
break;
case 2:
if (!String.valueOf(c[index]).matches(word)) {
state = 1;
}
break;
}
index++;
}
return num;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正好要用这个,看看.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询