比如一个字符串"iJ 0.P EN .P LUG. Gance Zhi-Hong Zhi Swtterbootu: + 886 2 2059 Osoo
 Fmc +.886 2 8797 2500 Moolle: + 886 928 :84 803
 E-mail: gotcezhu@epen-augcom OPEN-PLUG
 NO.18S. Zhcua S t Neihu D istpct Tooet cny I 1498. Toiwon, POe
 www. openyug con "要求写一个正则表达式
判断epen是它的一个字串
判断e p n是它的一个字串(注意中间是空格)
判断e  n是它的一个字串(注意中间有两个空格)这里必须考虑到换行符和其他任意空白字符有兴趣的来试试,多谢了

解决方案 »

  1.   

    没看出来有什么难得,用子串本身做正则就可以了:
    /epen/
    /e p n/
    /e  n/用不着考虑换行和什么其他空白符。
      

  2.   

    样本很无聊,程序的用途很无聊。所以现在的垃圾邮件满天飞,因为现在有灰色的邮箱搜索引擎。比 Google/baidu 之类的更有针对性的收集邮箱。可以看到有些对公业务的网站已经把所有联系方式都换成了图片来显示,就跟登录时的验证码一样。
      

  3.   

    没看出来有什么难得,用子串本身做正则就可以了:
    /epen/
    /e p n/
    /e n/用不着考虑换行和什么其他空白符。
      

  4.   


    可能我没表达清楚,不是一个固定的字串,而是任意字串
    对不住大家,我自己弄出来了,给大家看下
    private String getRegex(String input) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < input.length(); i++) {
    char x=input.charAt(i);
    String y=String.valueOf(x);
    if(y.equals(" ")){
    sb.append(".");
    }
    else{
    sb.append(x);
    }
    }
    return sb.toString();
    }

    private boolean match(String input,String regex){
    return Pattern.compile(regex).matcher(input).find();//只要能找到对应的一个字串就是可以了
    }
      

  5.   

    以前我用了这个正则表达式:
    比如要查询String str="abcdefg";
    那么我给定bc是不是它的字串
    我使用的是.*bc.*,那么我发现.不一定可以匹配行结束符,所以自然失败了
    但是我上面给出的表达式就可以了
    唉,貌似这里没有正则高手,我自己先搞定
      

  6.   

    什么意思? 直接str.indexOf(bc)不就行了?
      

  7.   

    你看下上面的,我要判断b c,b和c之间的空格可以表示任意字符
      

  8.   

    实际上我那个通过获取第一个字串的方法也有不足的地方,比如,刚才这个字串如果跨行了,比如说
    。bef
    ghi.......
    那么我要查询befghi,虽然正常情况下可以查询到这个字串,但是刚才这个字串跨行了,然后api里面又这样说"."不一定匹配行结束符呵呵
      

  9.   

    这种识别垃圾邮件的方法比较落后了,不智能。Paul Graham发明了新的邮件识别技术,不过我也没仔细看过:
    http://www.paulgraham.com/antispam.html