Java 正则表达式疑惑?

wjl123 2015-06-23 02:01:01
语句result=matcher.find(); 执行之前,matcher = pattern.matcher(str);
执行之后 ,matcher.find()表达式的值为TRUE,这是为什么?

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Test {
public static void main(String args[])
{
boolean result=false;

String str="abc:123";
String regex="abc";
Pattern pattern = Pattern.compile(regex);
Matcher matcher;
matcher = pattern.matcher(str);
result=matcher.find();

}

}
...全文
197 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjl123 2015-06-23
  • 打赏
  • 举报
回复
我终于明白了。为什么单步执行就是错的。而直接执行就是对的。 因为我在调试窗口中给了一个“matcher.find()”表达式,想在调式时看一下这个表达式的值。, 实质上,它在调式窗口中已经被执行了一次了。所以在后面的源代码中又有了一行代码,写到result=matcher.find()。所以,当程序执行到这里时,matcher.find()总计被执行了两次。那肯定是错的。因为,已经找到了,再找肯定是错的。
suciver 2015-06-23
  • 打赏
  • 举报
回复
这种东西楼主应该去多看看api,find方法就是在指定的字符串中按照正则表达式去查找匹配的值,找到就返回true,否则就false,你的字符串abc:123查找abc是可以找到的当然返回true
wjl123 2015-06-23
  • 打赏
  • 举报
回复
我用的是eclipse ,为什么还没有执行find方法,就好象这个find方法在初始化时就已经被执行了一次!! 晕。不明白。

50,635

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧