如何从此数据字符串中提取文本
本文关键字:提取 取文本 字符串 数据 | 更新日期: 2023-09-27 18:33:51
我需要拉出城市并说明如下所示的数据字符串:
8 mi SSW of Newtown, PA
10 mi SE of Milwaukee, WI
29 Miles E of Orlando, FL
截至目前,我正在将每个字符串单独传递到一个方法
string statusLocation = "8 mi SSW of Newtown, PA"
等一次一个。
在此字符串中搜索城市状态的最佳方法是什么?我在想正则表达式或子字符串和逗号索引等。我不太确定如果一个州是 3 个字符或一个城市中有逗号,我会遇到什么样的问题,因为这也是加拿大的数据,我不确定他们如何缩写东西。
你可以做一个
string str = "8 mi SSW of Newtown, PA";
var parts = str.Split(new[] {' '}, 5);
零件看起来像这样:{ "8", "mi", "SSW", "of", "Newtown, PA" },您可以使用parts[4]轻松访问"Newtown, PA"。
您可以使用
以下正则表达式:
of (.*), ([a-zA-Z]{2})$
这将捕获of
之后的所有内容,向上一个逗号,后跟一个空格,然后是两个字母,然后是一行结尾。例如:
var regex = new Regex("of (.*), ([a-zA-Z]{2})$");
var strings = new[]
{
"8 mi SSW of Newtown, PA",
"10 mi SE of Milwaukee, WI",
"29 Miles E of Orlando, FL"
};
foreach (var str in strings)
{
var match = regex.Match(str);
var city = match.Groups[1];
var state = match.Groups[2];
Console.Out.WriteLine("state = {0}", state);
Console.Out.WriteLine("city = {0}", city);
}
当然,这假设与数据有一定的一致性,例如状态是两个字母。