那位大大能告诉我下面的java正则表达式结果是为什么啊

dxqrr 2011-07-17 11:06:01
System.out.println("&".matches("[a-z&&[efg]]"));

System.out.println("&".matches("[a-z&[efg]]"));

System.out.println("+".matches("[a-z++[efg]]"));

System.out.println("+".matches("[a-z+[efg]]"));

输出结果依次是:false, true, true, true

谁能告诉我为什么这样啊
...全文
154 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
三千大千世界 2011-07-20
  • 打赏
  • 举报
回复
从5楼那里学习了
JavaMan_KA 2011-07-19
  • 打赏
  • 举报
回复
&&是取交集的意思,顺便学习一下。
dxqrr 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iis81365341 的回复:]

"&".matches("[a-z&&[efg]]")这句表示包含a到z的所有字符且包含e、f、g,相当于[efg]。此处的&&相当于“and”的意思。(交集)

"&".matches("[a-z&[efg]]")这句表示a到z的所有字符且包含$字符,或者包含e、f、g,而e、f、g就已经包含在a-z中所以[efg]没有意义,此处的&……
[/Quote]正解,就是这样的,谢谢了啊
iis81365341 2011-07-18
  • 打赏
  • 举报
回复
"&".matches("[a-z&&[efg]]")这句表示包含a到z的所有字符且包含e、f、g,相当于[efg]。此处的&&相当于“and”的意思。(交集)

"&".matches("[a-z&[efg]]")这句表示a到z的所有字符且包含$字符,或者包含e、f、g,而e、f、g就已经包含在a-z中所以[efg]没有意义,此处的&只是一个普通字符。(并集)

"+".matches("[a-z++[efg]]")、"+".matches("[a-z+[efg]]") +号在[]中只表示普通字符,一个+号和两个++意义相同。

不知道理解是否正确。
dxqrr 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yami251139 的回复:]

饿。。。我建议你去查一下api。。。
java.regex.pattern
应该是这个
[/Quote]刚查了下api,还真有,谢谢你 哦
"&".matches("[a-z&&[efg]]"),&&在这个里面是交集的意思,所以为false
"e".matches("[a-z&&[efg]]"),这样就为true了
dxqrr 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 heiboyyang 的回复:]

&和 &&是不同的意思 一个是位运算符 一个是逻辑运算符
System.out.println("&".matches("[a-z&&[efg]]"));//false
System.out.println("&".matches("[a-z&[efg]]"));//true
[/Quote]和这个没有关系吧,这个是正则表达式哎
HeiBoyYang 2011-07-17
  • 打赏
  • 举报
回复
&和 &&是不同的意思 一个是位运算符 一个是逻辑运算符
System.out.println("&".matches("[a-z&&[efg]]"));//false
System.out.println("&".matches("[a-z&[efg]]"));//true
yami251139 2011-07-17
  • 打赏
  • 举报
回复
饿。。。我建议你去查一下api。。。
java.regex.pattern
应该是这个

62,634

社区成员

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

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