当前位置:  开发笔记 > 编程语言 > 正文

如何避免Java正则表达式匹配中的隐式"^"和"$"?

如何解决《如何避免Java正则表达式匹配中的隐式"^"和"$"?》经验,为你挑选了1个好方法。

我一直在努力在Java 1.4.2中做一些相对简单的正则表达式匹配.我对Perl的做事方式更加满意.这是发生了什么:

我试图匹配/ ^ /来自" "

我尝试:

Pattern myPattern= Pattern.compile("^");
Matcher myMatcher= myPattern.matcher("");
System.out.println(myMatcher.matches());

我得到"假"

我习惯说:

print "" =~ /^/;

这确实是真的.

经过大量的搜索和实验,我发现了这个说:

"String方法通过在模式之前放置一个不可见的^并在它之后放置$来进一步优化其搜索条件."

当我尝试:

Pattern myPattern= Pattern.compile("^.*");
Matcher myMatcher= myPattern.matcher("");
System.out.println(myMatcher.matches());

然后它返回预期的true.我不想要这种模式.终止.*不应该是必要的.

然后我发现了Matcher.useAnchoringBounds(boolean)方法.我认为明确告诉它不使用锚定边界会起作用.它没.我试过发一个

myMatcher.reset();

以防我在关闭属性后需要冲洗它.没运气.随后调用.matches()仍然返回false.

我忽略了什么?

编辑:嗯,这很简单,谢谢.



1> jdigital..:

使用Matcher 查找方法(而不是匹配方法)

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有