好多分呀,可惜我不会正则表达式,不过我会StringTokenizer
StringTokenizer st=new StringTokenizer(tmp,"(");
String s=st.nextToken();其实根本就不用正则表达式的呀,你看着给吧

解决方案 »

  1.   

    其他的java代码我也会写的。我要的是正则表达式的代码。哪位高手能给出正则表达式的代码?
      

  2.   

    String tmp = "952支(东湖-十八里店北桥):酒仙桥";
    String str = tem.substring(0,tme.index("("));
      

  3.   

    String s = "952支(东湖-十八里店北桥):酒仙桥";
    String reg = "\\d{3}支?";
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(s);
    if(m.find()) {
    System.out.println(m.group());
    }我其实也不会,呵呵
      

  4.   

    用java其他包是有很多方法能实现的。但我就要正则表达式的代码。行吗? 谢谢!
      

  5.   

    to : binny(骑个破车看夕阳) 我要实现的是String tmp = "952支(东湖-十八里店北桥):酒仙桥";截取(前面的内容   ,你的方法只能截取数字。 路线不一定就都是有“支”字的。所以你的方法不行。
      

  6.   

    晕,就是这样子的,
    \\d+支?
    其中 \d代表数字,+表示有一个数字以上
         ?表示,可有可无(0或1)可以匹配一个或以上数字路线,外加支线  String s = "9支(东湖-十八里店北桥):酒仙桥";
    String reg = "\\d+支?";
    Pattern p = Pattern.compile(reg);
    Matcher m = p.matcher(s);
    if(m.find()) {
    System.out.println(m.group());
    }else{
    System.out.println("NO");
    }
      

  7.   

    北京的公交最多三位吧,String reg = "\\d{1,3}支?";好一点?另外,敬仰一下楼主的性欲,呵呵
      

  8.   

    正则表达式是已知条件后和原来的源进行判断的。
    如果一定要用正则就只能是先判断有没有,可是提取不知道什么意思。
    是改造原来字符串?
    如果不是,你都知道有了,你要的不就是你用来比较的条件么,还提取什么。
    关于java正则支持通用的正则标准。
    [abc] a, b, or c (simple class) 
    [^abc] Any character except a, b, or c (negation) 
    [a-zA-Z] a through z or A through Z, inclusive (range) 
    [a-d[m-p]] a through d, or m through p: [a-dm-p] (union) 
    [a-z&&[def]] d, e, or f (intersection) 
    [a-z&&[^bc]] a through z, except for b and c: [ad-z] (subtraction) 
    [a-z&&[^m-p]] a through z, and not m through p: [a-lq-z](subtraction) 
    使用举例 
    String sr="abcdefg";
    String cp="de";
    sr.matches("[^de^]");
      

  9.   

    hehe ,我研究好了给你
    :)
      

  10.   

    <script language="javascript">
    var regEx=/\(/;
    var tmp = "952支(东湖-十八里店北桥):酒仙桥";
    var tmp1=regEx.exec(tmp);
    alert (RegExp.leftContext);
    </script>
      

  11.   

    public static void main(String arg[]){
         String regex = ".+\\(" ;
        String str = "952支(东湖-十八里店北桥):酒仙桥";
        Pattern pattern = Pattern.compile(regex) ;
        Matcher m = pattern.matcher(str) ;
        while (m.find()){
         String strReg = m.group() ;
         System.out.println(strReg.replaceAll("\\(",""));    }
      

  12.   

    恩。我看了几篇文章研究了一下。 Pattern p = Pattern.compile("([^(]+)");
                      String str = "952支(东湖-十八里店北桥):酒仙桥";
    Matcher m = p.matcher(str);
    boolean result = m.find();
    System.out.println("匹配成功的字符:" + m.group());成功了。。!!!
                      
      

  13.   

    to: bear_tj() 有道理。我也知道我那个表达式匹配不了后面的字串。不过你的那个表达式怎么还要替换字串呢??strReg.replaceAll("\\(",""));正则表达式本身就很强,你怎么还要用replaceAll呢??用正则表达式不能完全实现吗?
      

  14.   

    String str = "952支((东湖-十八里店北桥):(酒仙桥";;

    String regex = "^(\\d{1,3}+.{1})\\(";
       Pattern pattern = Pattern.compile(regex) ;
       Matcher m = pattern.matcher(str) ;
      
       if (m.find()) {
       System.out.println(m.group(1));
       }
      

  15.   

    replaceAll中的模式也是正则表达式!
    而你的条件可以说是不确定的,而是“("以前的字符,模式中正是利用这个特征才能求出它的匹配模式
    模式中不能取得你正常要求的字符,用replaceAll的现象也就很多了,相当于用了两次正则表达式.
      

  16.   

    圆满解决了,用正则表达式中的捕获组也可以实现上述问题了String regex = "(.+)\\(" ;
        String str = "95672支(东湖-十八里店北桥):酒仙桥";
        Pattern pattern = Pattern.compile(regex) ;
        Matcher m = pattern.matcher(str) ;
        while (m.find()){
         String strReg = m.group(1) ;
         System.out.println(strReg) ;
         }代表整个正则表达式的捕获组序号为0,左边第一个圆括号对应的捕获组序号为1,第二个圆括号对应的
    捕获组序号为2,以此类推,正则表达式有多少个圆括号就有多少个捕获组.