Java正则表达式

tanpeng1711 2010-10-18 10:37:30
System.out.println("hello a".matches("^h[a-z]{4}\\b."));//false
System.out.println("hello a".matches("^h[a-z]{4}\\b.."));//true
各位帮忙看看,我看来第一个表达式结果应为true,可结果为false。
单词结束符后不就一个字符吗?麻烦解释下,谢谢!
...全文
102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanpeng1711 2010-10-20
  • 打赏
  • 举报
回复
谢谢,懂了!
lanchangsheng 2010-10-19
  • 打赏
  • 举报
回复
System.out.println("hello a".matches("^h[a-z]{4}\\b."));//false
System.out.println("hello a".matches("^h[a-z]{4}\\b.."));//true

第一行中 "h[a-z]{4}\\b" 匹配了 hello \\b表示这里是一个边界不是匹配空格。"."才是匹配了空格所以第二行中 ".." 最后两点就是匹配 空格和a的
coolbamboo2008 2010-10-19
  • 打赏
  • 举报
回复
\b表示单词的边界
Apeipo 2010-10-19
  • 打赏
  • 举报
回复
\\b只是代表一个边界,不匹配字符.学习了.~
tiao618 2010-10-18
  • 打赏
  • 举报
回复
对于字符串"hello a",正则中的\b只是匹配到了hello中o的后面的位置(是o后面,只是这个位置点),而\b并没有匹配hello和a之间的空格,\b后面的第一个.是匹配了这个空格,所以第一个false(字符a没有匹配)
lz看看这个表达式应该就明白了吧 "^h[a-z]{4}\\b\\sa" //其中\s去匹配那个空格

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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