Java正则表达式中的单词边界什么意思,这样理解对吗?

String str="da jia zhu yi la,ming tian bu fang jia!";//找出其中的3字母单词
Pattern p = Pattern.compile("\\b[a-z]{3}\\b");
Matcher matcher = p.matcher(str);
while(matcher.find()){
System.out.println(matcher.group());
}

我的理解:扫描串str,一旦发现两个这样的(非字母也非数字)字符中间夹着三个字母或者数字,就为一个匹配?是这样的吗?

显然楼主理解是错的:
这个正则的意思是: 匹配 单词长度为3 且小写的单词

比如 这个正则匹配 what a good boy and guy, BOY!
能匹配到 boy , and 和 guy ,其它的都匹配不到
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-22
单词边界又叫锚定,在为了不批到其它东西设定的,给个例子给你,可以有助于理解:
你只搜索123
那么 1234,0123,01234,123
在不加边界的情况下,这4个数字中123都会匹配到,如果添加了边界那么就会只搜索123,可以理解为精确搜索123本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网