我有以下數據,例如:C#無法獲得正則表達式工作的所有情況
HRB 760468:CANNSITE有限公司,斯圖加特,C/O博士埃爾維拉Ehle,Rotdornweg 7,18119羅斯托克。有限責任公司。公會於2017年3月9日。
HRB 760481:Neckarsee 399 VV有限公司,斯圖加特,庫爾特 - 舒馬赫 - 大街18-20,53113波恩。有限責任公司。公會於2017年3月22日。
我需要過濾掉:
HRB 760468:CANNSITE有限公司,斯圖加特,C/O博士埃爾維拉Ehle,Rotdornweg 7,18119羅斯托克
HRB 760481:Neckarsee 399 VV有限公司,斯圖加特,庫爾特 - 舒馬赫 - 大街18-20,53113波恩
我正則表達式是:@"HRB.\d+:[^.]+"
太陽麻煩是因爲它含有的情況下,「博士埃爾維拉」「」 - 正則表達式將停在那裏,而不是正確的「公司」之前,我無法得到它的工作來改變正則表達式在這種情況下,到底要得到它的「羅斯托克」 /「波恩」。
我曾嘗試濾除後「760468」,「CANNSITE有限公司」,「斯圖加特」,「Rotdornweg 7」,「18119」做 對於我做的是關注 - 也許你可以幫我提高這個(爲了類似於上面的數據):
Regex regexNummer = new Regex(@"\d+:");
Regex regexFirma = new Regex(@":[^,]+");
Regex regexStadt = new Regex(@", \w+.\w+.\w+.\w+,");
Regex regexAdresse = new Regex(@", \w+.+\d,");
Regex regexPlz = new Regex(@", \d+[^ ]+");
string nummer = regexNummer.Match(match.Value).ToString().Replace(":", "");
string firma = regexFirma.Match(match.Value).ToString().Replace(": ", "");
string plz = regexPlz.Match(match.Value).ToString().Replace(", ", "");
string stadt = regexStadt.Match(match.Value).ToString().Replace(", ", "");
stadt = stadt.Replace(",", "");
string adresse = regexAdresse.Match(match.Value).ToString();
adresse = adresse.Remove(adresse.Length - 1);
adresse = adresse.Substring(adresse.LastIndexOf(", ") + 1);
adresse = adresse.Substring(1);
因爲有這麼多不同類型的地址就經常開裂了
地址解析很難,但看起來你只需要到地址的末尾。所以,跳過其他一切:確定最後的獨特之處。「先前有什麼共同點?例如,它會始終是5位數字空間單個單詞嗎? (例如「53113波恩」)。如果是這樣,你可以像這樣找到它。當所有其他都失敗http://regex101.com –
您的數據在一行或多行?從上面的例子來看,它似乎是一條多線。 –
看看這裏:https://pastebin.com/cBHHuENL有整個例子,我解釋一下我想做什麼 – iDraGoN