当前位置: 代码迷 >> J2SE >> 怎么写出不以ABC开头的正则表达式?(不用求反功能)
  详细解决方案

怎么写出不以ABC开头的正则表达式?(不用求反功能)

热度:158   发布时间:2016-04-24 13:38:07.0
如何写出不以ABC开头的正则表达式?(不用求反功能)
如题

------解决方案--------------------
((?!abc)\w)+
------解决方案--------------------
为什么不能用求反功能
------解决方案--------------------
题目是不是这样的:写出以ABC字符串开头,不用(^ABC)取反做?要是这样的话就用向后预搜索:(? <!ABC).*(这是不以ABC开头的任何串。当然.可以换成你想要的匹配)
------解决方案--------------------
if(! "abcddd ".startsWith( "abc ")){
System.out.println( "^-^ ");
}

这种非正则表达式的行吗,另外 "向后预搜索 "什么意思 请楼上赐教
------解决方案--------------------
String str[] =new String[]{ "abcd ", "123 ", "adc ", "1abc "};
Pattern p = Pattern.compile( "(?!abc)^(.*)$(? <!abc) ");
for(int i=0;i <str.length;i++){
Matcher m = p.matcher(str[i]);

if(m.find()){
System.out.println(m.group(1));
}
}
------解决方案--------------------
(?!abc)^(.*)$(? <!abc)

结果:
123
adc


对吗???
------解决方案--------------------
^(?!ABC).+$
 这样可以不????????????????