我想写一个这样的表达式  [i|(E)][*]*{+[i|(E)][*]*}* 
这个是我自己写的 意思是:是以i或(E)开头的,后跟0或多个* 然后 {+跟前面一样的}整个的闭包
这个报错 如何写正确 ??
谢谢
这个(E)不能只找出(  或  )或E 必须做为一个整体

解决方案 »

  1.   

    这个(E)不能只找出(  或  )或E 必须做为一个整体这句话没明白String pattern = "[i|(E)][\\*]*([i|(E)][\\*]*)*";
      

  2.   

    这个表达式 我连保存都不行 
    抱错save can not complete ;
    some charater using GBK;
      

  3.   

    我的意思是[i(E)]这样的话,那么就是      任意匹配一个就好了;
    i 符合,(也符合; 明白吗? 这种情况不行的
      

  4.   

    那是必需的~
    ¦字符重新输入就可以了,因为这个字符显示在csdn的时候跟程序里的不一样
      

  5.   

    少了一个加号  "[i ¦(E)][\\*]*(+[i ¦(E)][\\*]*)*";
      

  6.   

    我用了 这个表达式   "\\b[i|(E)][\\*]*([\\+][i|(E)][\\*]*)*\\b"
    请问一下 怎么 i+(,)+i会匹配
      

  7.   

    我觉得i+(E) 这种能匹配,而i+(不能匹配
    可是哪里出问题了呢??
      

  8.   

    "(i|\\(E\\))[\\*]*([\\+](i|\\(E\\))[\\*]*)*"lz,这个应该可以满足你了,呵呵
      

  9.   

    (?:i|\\(E\\))\\**(?:\\+(?:i|\\(E\\))\\**)*PS:字符 * 在 [ ] 中不需要进行转义,不必写成 [\\*],可以直接写成 [*],
    但这样的效率没有直接写 \\* 高。
      

  10.   

    就是比如(?:XXX)意思就是这个是非捕获组~取出groupCount的时候,不包含在里面