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个单词, 只要是没有空格并且连续的字母后面可以跟符号或者是空格 都算是一个单词
展开
 我来答
小傻

推荐于2017-10-15 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

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。
望素芹化冬
2019-07-22 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:869万
展开全部
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次

第一个肯定是正确的
第二个肯定是不正确的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我宜4507
2010-02-13 · TA获得超过979个赞
知道小有建树答主
回答量:1852
采纳率:0%
帮助的人:954万
展开全部
正则表达式的东西自己看看api就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuhaiwei
推荐于2017-09-07 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1384万
展开全部
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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unodos
2010-02-14 · TA获得超过134个赞
知道答主
回答量:184
采纳率:0%
帮助的人:53.8万
展开全部
正好要用这个,看看.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式