string str = "姓名(男)年龄#20";
string[] items = str.Split('(', ')', '#');

解决方案 »

  1.   

    如果你只需要其他后面的年龄,也就是哪个数字,前边不是有个  # 符号么,直接字符串切割   
    string s="姓名(男)年龄#20";
    string[] s2=s.split('#');
    string s3=s2[1];   //这就是年龄的数字如果不放心,可以检测一下是不是数字,直接转换try
    {
    int age=convertto.int32(s3);
    messagebox.show("获取年龄成功");
    }
    catch(exception ex)
    {
    messagebox.show("获取年龄失败");
    }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.IO;
    namespace sxLdfang
    {
        class Program
        {
            static void Main(string[] args)
            {
                string html = @"张三(男)18#20
    张三疯(男)88#28
    ";
                string pattern = @"(?m)^(?<xm>[^(]+)\([^)]+\)(?<nl>\d+)#(?<num>\d+)$";
                MatchCollection mc = Regex.Matches(html, pattern);
                foreach (Match m in mc)
                {
                    Console.WriteLine("        xm:" + m.Groups["xm"].Value);
                    Console.WriteLine("        nl:" + m.Groups["nl"].Value);
                    Console.WriteLine("       num:" + m.Groups["num"].Value);
                    Console.WriteLine();
                }
                Console.ReadKey();
            }
        }
    }
    运行结果:
            xm:张三
            nl:18
           num:20        xm:张三疯
            nl:88
           num:28
      

  3.   


    @"(?<=姓名\(.*?\)).*?#\d+"