所以我需要一个字符串的地址,但我有不同的情况,所以我涵盖了很多,但现在我无法解决这个问题:
原始字符串:
HRB 145942:playloop UG(haftungsbeschränkt),汉堡,EimsbüttelerChaussee57,c / o Jan Sorgenfrei ,20259汉堡。 Gesellschaft mit beschr
HRB 145941:TBE-Ehrbare Rebellen GmbH,Hamburg, Friedrich-Ebert-Damm 111 ,22047 Hamburg。 Gesellschaft mit beschr
HRB 145923:Lionheart Asset Management GmbH,München, Trenknerweg 100 A,c / oBartholdBrümmer,22605 Hamburg。 Gesellschaft mit beschr
HRB 716239:CarstanCode Germany GmbH,Konstanz, Byk-Gulden-Straße2,GebäudeF21,78467 Konstanz。 Gesellschaft mit beschr
所以我需要“EimsbüttelerChaussee57,c / o Jan Sorgenfrei ”和“ Friedrich-Ebert-Damm 111 ”和“ Trenknerweg 100 A,c / oBartholdBrümmer“和” Byk-Gulden-Straße2,GebäudeF21“
即使只是没有c / o的地址也会对我有所帮助
我的RegEx是:, \d{5}.+\.
我的问题是,它获得了像“弗里德里希......”这样的普通地址,但是在“c / o”地址中,它只是像“c / o Jan Sorgenfrei”那样,并且之前错过了字符串或它只是“ GebäudeF21“。
从RegEx获取字符串后,我执行以下操作来过滤掉一些内容:
stadt = stadt.Substring(0, stadt.LastIndexOf('.'));
stadt = new string(stadt.Where(c => c != '-' && (c < '0' || c > '9')).ToArray());
stadt = stadt.Substring(1);
答案 0 :(得分:1)
如果格式始终保持不变,那么可能不需要ReGex。 请注意,这也将占据城市部分:
var addressList = new[]
{
"HRB 145942: playloop UG (haftungsbeschränkt), Hamburg, Eimsbütteler Chaussee 57, c/o Jan Sorgenfrei, 20259 Hamburg. Gesellschaft mit beschr",
"HRB 145941: TBE - Ehrbare Rebellen GmbH, Hamburg, Friedrich-Ebert - Damm 111, 22047 Hamburg.Gesellschaft mit beschr",
"HRB 145923: Lionheart Asset Management GmbH, München, Trenknerweg 100 A, c / o Barthold Brümmer, 22605 Hamburg.Gesellschaft mit beschr",
"HRB 716239: CarboCode Germany GmbH, Konstanz, Byk - Gulden - Straße 2, Gebäude F21, 78467 Konstanz.Gesellschaft mit beschr"
};
var addresses = addressList.Select(
s =>
{
var secondIndexOfComma = s.IndexOf(',', s.IndexOf(',') + 1);
return s.Substring(secondIndexOfComma + 2, s.LastIndexOf('.') - secondIndexOfComma - 2);
});
foreach (var address in addresses)
{
Console.WriteLine(address);
}
输出:
Eimsbütteler Chaussee 57, c/o Jan Sorgenfrei, 20259 Hamburg
Friedrich-Ebert - Damm 111, 22047 Hamburg
Trenknerweg 100 A, c / o Barthold Brümmer, 22605 Hamburg
Byk - Gulden - Straße 2, Gebäude F21, 78467 Konstanz