字符内容如下:
  据地震台网测定,2011年04月23日20时31分,在陕西省汉中市宁强县(N33.0度,E106.2度)发生2.1级地震,震源深度9千米。我想用正则表达式提取其中的经度--33.0、纬度--106.2,震级--2.1,震源深度--9 ,地点--陕西省汉中市宁强县

解决方案 »

  1.   

    new Regex("在.*?\(N.*度,E.*度\)发生\\d*级地震")
      

  2.   

    (?<地点>([\s\S][^\(\)]+?))(?<经度>............麻烦 懒的写了 
      

  3.   

    这个问题好像不是太复杂,不一定的非用正则表达式,其他的方法也可以的。具体没有看到你的文件,所以我想使用字符判断也可的,如 c# 的indexof函数也可以,substr等
      

  4.   

      String str = "据地震台网测定,2011年04月23日20时31分,在陕西省汉中市宁强县(北纬33.0度,东经106.2度)发生2.1级地震,震源深度9千米。";
     String lon = @"(东经)(?<lon>((\+|-)?(0|[1-9]\d*)(\.\d*[0-9])*))";
     String lat = @"(北纬)(?<lat>((\+|-)?(0|[1-9]\d*)(\.\d*[0-9])*))";
    richTextBox2.Text = "经度:"+(Regex.Match(str, lon).Result("${lon}")) + "纬度:"+(Regex.Match(str, lat).Result("${lat}"));问题解决了。
    但其中的正则表达式哪位帮我合并在一个字符串。  我合并后总是出现问题。先谢了。
      

  5.   


    string str = "据地震台网测定,2011年04月23日20时31分,在陕西省汉中市宁强县(北纬33.0度,东经106.2度)发生2.1级地震,震源深度9千米。";
    string lonlat = @"(北纬)(?<lat>((\+|-)?(0|[1-9]\d*)(\.\d*))).*?(?<lon>(\+|-)?(0|[1-9]\d*)(\.\d*))";
    //string lat = @"(?<lat>((\+|-)?(0|[1-9]\d*)(\.\d*[0-9])*))";
    Match m = new Regex(lonlat).Match(str);
    if(m.Success)
        richTextBox2.Text = "经度:" + m.Groups["lon"].Value + "纬度:" + m.Groups["lat"].Value;