如字符串
"this is test,is ok?" 
我想找出"this is" 字符串,我用的正则表达式为 "t.*is"
但是找出的却是 "this is test,is",显然不对,那正则表达式应怎么写?还有字符串
"this is a good idea.this is a bad idea."
要找包括单词 this 和 idea但之间又不含bad的字符串,请问正则表达式应怎么写?

解决方案 »

  1.   

    不知道的话就用charAt,substring等操作吧
      

  2.   

    如果找的是"this is",那么就设正则表达式为 "this is"好了如果找的是 "this...is",那么正则表达式可设为"this.*?is"或者"t.*?is.*?is"第2个我不会,我的想法是用"this.*?idea"匹配所有的字符串,然后再剔除所有含bad的字符串
      

  3.   

    to wentiboy(与人无愁) :
      谢谢你。"this.*?is"满足我的第一个要求。我想问一下?is 表示什么意思?还有jdk中这些表示什么意思呀?特殊构造(非捕获) 
    (?:X) X,作为非捕获组 
    (?idmsux-idmsux)  Nothing,但是将匹配标志由 on 转为 off 
    (?idmsux-idmsux:X)   X,作为带有给定标志 on - off 的非捕获组 
    (?=X) X,通过零宽度的正 lookahead 
    (?!X) X,通过零宽度的负 lookahead 
    (?<=X) X,通过零宽度的正 lookbehind 
    (?<!X) X,通过零宽度的负 lookbehind 
    (?>X) X,作为独立的非捕获组 
      

  4.   

    "this is a good idea.this is a bad idea."
    用 ^this(\S+)"([^bad]+)"idea 这个吧 
    在 java里要写成 
    Pattern p = Pattern.compile("^this(\\s+)\"([^bad]+)\"");
    要把 "和 \转义拉
      

  5.   

    应该是 
    ^this(\s+)"([^bad]+)"idea 
    是小写的 \s+
      

  6.   

    楼上的测试过了么?关于贪婪匹配,google下就清楚了随便找了篇文章
    http://www.okhtm.com/article.asp?id=594