繁体   English   中英

如何使用正则表达式在字符串中获取逗号分隔的双精度值?

[英]How to get a comma separated double value in a string with Regex?

我想使用Regex检索以下字符串中的纬度和经度值。 请帮我做到这一点。

<script type="text/javascript"> 
    function initialize() {
        var mapOptions = {
            zoom: 18,
            center: new google.maps.LatLng(0.6213000841833666, 73.46202224493027)
        };  
    } 
</script>

到目前为止,这是我尝试过的。

var data = await Client.GetResponse(URL);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(data);
var script = doc.DocumentNode.Descendants()
                .Where(x => x.Name == "script").FirstOrDefault();
if (script != null) {
    Match match = Regex.Match(script.InnerText, @"LatLng([A-Za-z0-9\-]+),$", RegexOptions.IgnoreCase);
    if (match.Success) {
        // blah blah
    } 
} 
    Match m = Regex.Match(xml, @"LatLng\(([\d\.]+)\,\s*([\d\.]+)\)");
    if(m.Success)
    {
        Trace.WriteLine(string.Format("Lat:{0} - Lng:{1}", m.Groups[1].Value, m.Groups[2].Value));
    }

可能对您有帮助

using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            var strings = @"<script type='text/javascript'> 
    function initialize() {
        var mapOptions = {
            zoom: 18,
            center: new google.maps.LatLng(0.6213000841833666, 73.46202224493027)
        };  
    } 
</script>";
            var group =  Regex.Match(strings,"maps.LatLng\\((?<lat>.*?),\\s*(?<long>.*?)\\)",RegexOptions.IgnoreCase).Groups;
            var lat  = group["lat"].Value;
            var lon = group["long"].Value;
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM