求一正则表达式现有一些记录,每条记录以逗号分割,字段个数不定长,但前四个字段格式相同,后面的字段就没有规律,比如张三,男,本科,科员,身高,工作年限,...
李四,女,专科,资料员,工作年限,政治背景,...记录中前四个字段都是:姓名,性别,学历,职位,但后面的就不确定了,现在想获取第五位以后的字段,例如:第一条取得的内容为:身高,工作年限,...
第二条取得的内容为: 工作年限,政治背景,...不知道这个表达式如何去写,希望大家赐教。

解决方案 »

  1.   

    格式相同就直接split吧,啥都用正则干嘛。
      

  2.   

    谢谢两位的回答,
    HDNGO怪我没有说清楚,不用split,是因为每个字段用英文逗号分隔,但在后面的字段中比如有备注,如果备注内容有英文逗号前面会有一个反斜杠比如:
    张三,男,本科,科员,身高,工作年限,ABD\,EFG则工作年限后面的字段就是一个字段,如果用split就回出错
      

  3.   

    (? <=([^,]+,){4})[\s|\S]+
    试了一下,好像有问题
      

  4.   


    //这样?分组
    string input = @"张三,男,本科,科员,身高,工作年限,ABD\,EFG ";
    string[] list = Regex.Split(input, @"(?<!\\),");
      

  5.   

    前四位固定那就这样写:string reg="^([^,],){4}(?<content>(.|\s)*)$"
      

  6.   

    真的吗? [\s|\S]+这样的写法我在项目中用过N多次了或许是我们的使用环境不同。
      

  7.   

    哦~  你是对的
    那个|是多余的
    不过[\s|\S]+与[\s\S]+在结果上是一样的