我有个字符串,格式可能为 无锡-北京T110(19:25-7:30);D343(18:00-2:00);...现在想取出所有的车次号,车次号肯定以英文字母或数字开头,车次号前仅含有(也可能不含有)地名(应该不含有英文字母或数字),现在要用正则表达式取出所有的车次号,应该怎么写正则表达啊

解决方案 »

  1.   

    地名是中文的
    (?<=[\u4e00-\u9fa5]*)[A-Z]+\d+(?=\()
      

  2.   

    T110
    [a-zA-Z]?\d+(?=\()
    貌似就可以了
      

  3.   

    关键是匹配后,我要用matchs取出所有的匹配项,而不是去验证正则表达式,这个该如何写呢
      

  4.   


    Regex re = new Regex(@"<hkstrong:([^<>]+)\s([^<>]+)>([\S\s]*?)</hkstrong:\1>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
    MatchCollection mc = re.Matches(str);把红色部分替换成你自己的正则就可以了
      

  5.   

    MatchCollection mc = Regex.Matches("text", @"(?<=[\u4e00-\u9fa5]*)[A-Z]+\d+(?=\()", RegexOptions.None);
    foreach (Match ma in mc)
    {
      
     //输出ma.Value
    }