我有一个不一致的地址字段,我从excel上读到。我需要分割这个字段,并将这2个值输入到两个list属性中。
内容可以是这样的
在门口42
我需要将号码从其余的数字中除以,并在物业“街”加上“在门口”,在物业“号码”中加上"42“。
我已解决了用这个号码取数字的问题:
Number = Convert.ToString(ws.Cells[j + 3, i + 2].Value).Split(' ').LastOrDefault()我如何将这个字符串与Linq分开,并将最后一个数字排除在外才能得到街道?
亲切的问候
发布于 2013-06-13 11:46:22
使用regex,这样您也可以灵活地满足您的需要。
这是一个样本:
static void Main(string[] args)
{
Regex regex = new Regex(@"(?<words>[A-Za-z ]+)(?<digits>[0-9]+)");
string input = "At the gates 42";
var match = regex.Match(input);
var a = match.Groups["words"].Value; //At the gates
var b = match.Groups["digits"].Value; //42
}发布于 2013-06-13 11:40:23
在这里劈开绳子有点过分。你只需要找到“”的最后一次出现,然后在这个位置分裂:
var address = "At the gates 42";
var idx = address.LastIndexOf(' ');
var street = address.Substring(0, idx);
var number = address.Substring(idx + 1);如果需要更多的灵活性,也可以考虑使用正则表达式。
发布于 2013-06-13 11:42:58
你可以这么做:
String[] sa = Convert.ToString(ws.Cells[j + 3, i + 2].Value).Split(' ');
Int32 number = Convert.ToInt32(sa[sa.Length - 1]);
String street = String.Join(" ", sa.Take(sa.Length - 1));https://stackoverflow.com/questions/17086025
复制相似问题