//String s = "Windows 98";
//String s = "Windows 97";
String s = "Windows 2000";
Matcher m = Pattern.compile("Windows\\s(?!98|2000|NT)").matcher(s);
System.out.println(m.find());;
//String s = "Windows 97";
String s = "Windows 2000";
Matcher m = Pattern.compile("Windows\\s(?!98|2000|NT)").matcher(s);
System.out.println(m.find());;
解决方案 »
- 求教
- 哪位高手帮我解决下!!~~(异常)
- 类实现java.io.Serializable后的一个问题
- exec() 问题?
- frame上有4个panel,如何只对其中1个进行画图
- 问个问题,eclips可以象jbuilder一样可视化开发吗?如果可以哪里有插件
- 我使用了swing编写applet,但是ie5.0不支持它,只能在appletviewer上显示,在ie上无法显示,我要到哪里去下载java组件呢?或者有什么别的
- 一个字符串中带有\的问题
- 关于Timestamp在数据库里的检索问题???
- 关于文件上传的中文问题,解决问题150分送上.不够可再加,前提是要解决问题.
- 新手求解
- javaee项目的技术点是不是主要在service层的业务逻辑 框架搭建好了 最终还是在Service通过javase写业务逻辑???
感谢回答
但是你这个貌似有点问题啊:
首先你用的是find,也就是部分匹配,如果你改成matches就不对了
还有就是对于Windows 97和Windows988这种都应该为true
真是孺子不可教啊,现成的教程:自己去好好了解,3楼的意思懂的话就不用看教程了,不要生气啊,只是活跃下气氛
http://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.80).aspx
真是孺子不可教啊,现成的教程:自己去好好了解,3楼的意思懂的话就不用看教程了,不要生气啊,只是活跃下气氛
http://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.80).aspx
额,头一次被人说成这样啊,好桑心
我回复3L的你没看到?,你发的链接我早看过了,你帮我解决下吧
真是孺子不可教啊,现成的教程:自己去好好了解,3楼的意思懂的话就不用看教程了,不要生气啊,只是活跃下气氛
http://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.80).aspx
你发的是微软的东西吧,我要的是java的,可能会不一样
String source = "Windows 2000200";
String reg = "(Windows\\s(?!\\b2000\\b|\\b98\\b|\\bNT\\b))(.?+)";
Pattern pattern = Pattern.compile(reg);
boolean f = source.matches(reg);
System.out.println(f);
}
自己去验证吧,不合要求,再讨论讨论
如果是判断一个字符串是否正确的话,正则如下:^Windows\s+(?!(?:98|2000|NT)$).+$
但是对于这种:
Windows 98 8
还是不行
但是对于这种:
Windows 98 8
还是不行
这是因为没有考虑空格的情况,你前面没提到,你把后面的 点 改成 “[\da-zA-Z]” 就行了,
我的正则:^Windows\s+(?!(?:98|2000|NT)$)[\da-zA-Z]+$
中间的?!是什么意思
?不是表时前面的表达式出现0次或者一次吗
!第一次看到
public class TestTmp {
public static void main(String[] args) {
String str="Windows 998";
//^Windows\s+(?!(?:98|2000|NT)$)[\da-zA-Z]+$
System.out.println(str.matches("^Windows\\s+(?!(?:98|2000|NT)$)[\\da-zA-Z]+$"));
}
}
感谢回答
但是你这个貌似有点问题啊:
首先你用的是find,也就是部分匹配,如果你改成matches就不对了
还有就是对于Windows 97和Windows988这种都应该为true正则表达式用Windows\\s(?<=\\b98|2000|NT)\\b,即匹配以Windows开头,后面跟98、2000、NT的字符串,匹配成功,则不满足,失败则说明Windwos后面跟的是98/2000/NT以外的字符。Windows988/20007什么的都可以。
刚看到贴还未验证,如有错误求指正。