使用子字符串修剪长文本以获得我想要的内容
Trimming a long text to get what I want using substring
我有一个程序是在 UWP 中使用 c# 创建的,我们使用 ESRI.ArcGISRuntime 库在其中嵌入了一个地图。
我只想显示数据,我已经使用子字符串来提取我需要的东西,但它总是给我很多。
这是我得到的代码行:
PROJCS[“WGS_84_Web_Mercator_auxillary_Sphere”.DATUM[“GCS WGS 1984”.SPHEROID[“WGS 1984”.6378…………..
我只想显示 DATUM 之后和 SPHEROID 之前的内容,即 GCS WGS 1984。
这是我目前拥有的:
_currentProjection = _tileLayer.SpatialReference.WkText.Substring(_tileLayer.SpatialReference.WkText.LastIndexOf("DATUM") + 9, _tileLayer.SpatialReference.WkText.StartsWith.ToString("SPHEROID");
子字符串的第一部分是正确的,但我无法正确地得到第二部分。有没有人知道如何做到这一点?
谢谢
有很多方法,但 Regex 可能是我的首选
var code = @"PROJCS[""WGS_84_Web_Mercator_auxillary_Sphere"".DATUM[""GCS WGS 1984"".SPHEROID[""WGS 1984"".637";
var m = Regex.Match(code, @"DATUM\[""(?<d>[A-Z0-9 ]+)""\.SPHEROID");
var r = m.Groups["d"].Value;
如果你想把它作为子字符串:
var code = @"PROJCS[""WGS_84_Web_Mercator_auxillary_Sphere"".DATUM[""GCS WGS 1984"".SPHEROID[""WGS 1984"".637";
var f = code.IndexOf("DATUM") + 7;
var t = code.IndexOf("SPHEROID") - 2;
var r = code[f..t]; //this is C#9 indexes and ranges; if you don't have it you can upgrade C# or use .Substring(f, t-f)
或拆分:
var code = @"PROJCS[""WGS_84_Web_Mercator_auxillary_Sphere"".DATUM[""GCS WGS 1984"".SPHEROID[""WGS 1984"".637";
var bits = code.Split('"');
var i = Array.FindIndex(bits, b => b.Contains("DATUM"));
var r = bits[i+1];
我有一个程序是在 UWP 中使用 c# 创建的,我们使用 ESRI.ArcGISRuntime 库在其中嵌入了一个地图。
我只想显示数据,我已经使用子字符串来提取我需要的东西,但它总是给我很多。
这是我得到的代码行:
PROJCS[“WGS_84_Web_Mercator_auxillary_Sphere”.DATUM[“GCS WGS 1984”.SPHEROID[“WGS 1984”.6378…………..
我只想显示 DATUM 之后和 SPHEROID 之前的内容,即 GCS WGS 1984。
这是我目前拥有的:
_currentProjection = _tileLayer.SpatialReference.WkText.Substring(_tileLayer.SpatialReference.WkText.LastIndexOf("DATUM") + 9, _tileLayer.SpatialReference.WkText.StartsWith.ToString("SPHEROID");
子字符串的第一部分是正确的,但我无法正确地得到第二部分。有没有人知道如何做到这一点?
谢谢
有很多方法,但 Regex 可能是我的首选
var code = @"PROJCS[""WGS_84_Web_Mercator_auxillary_Sphere"".DATUM[""GCS WGS 1984"".SPHEROID[""WGS 1984"".637";
var m = Regex.Match(code, @"DATUM\[""(?<d>[A-Z0-9 ]+)""\.SPHEROID");
var r = m.Groups["d"].Value;
如果你想把它作为子字符串:
var code = @"PROJCS[""WGS_84_Web_Mercator_auxillary_Sphere"".DATUM[""GCS WGS 1984"".SPHEROID[""WGS 1984"".637";
var f = code.IndexOf("DATUM") + 7;
var t = code.IndexOf("SPHEROID") - 2;
var r = code[f..t]; //this is C#9 indexes and ranges; if you don't have it you can upgrade C# or use .Substring(f, t-f)
或拆分:
var code = @"PROJCS[""WGS_84_Web_Mercator_auxillary_Sphere"".DATUM[""GCS WGS 1984"".SPHEROID[""WGS 1984"".637";
var bits = code.Split('"');
var i = Array.FindIndex(bits, b => b.Contains("DATUM"));
var r = bits[i+1];