我目前正在編寫一個C#程序,解析SQL Server查詢報告中的數據,然後將其保存供以後使用。到目前爲止,我已經解析查詢已經非常簡單,但我剛剛收到包含此項測試文件:使用Bizarrely格式化條目解析SQL查詢報告
Client Contact Client Email
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Primary: Nelli Quiroga
, [email protected]
Secondary: Zully Aranda, [email protected]
[email protected]|[email protected]
(請原諒格式 - 這正是如何查詢輸出。)
我需要能夠提取主客戶和備用客戶的姓名和電子郵件地址,然後將其存儲在List<Tuple<string, string>>
中。到目前爲止,我還沒有能夠設計一個能夠高效完成的解決方案。我最好的猜測是我必須以某種方式使用Regex,但我不熟悉Regex如何在C#中工作,並且我的正則表達式技能非常生鏽。
一些額外的信息:
- 我沒有對數據庫的訪問,所以我不能改變格式。
- 我不知道查詢結果是否可以包含多個這樣的條目。因此,我希望解析器能夠處理多個這些條目(如果存在)。
此條目(IES)將包含其他表的查詢,這是令人欣慰的所有格式,像這樣的查詢報告的一部分:
User_Name Group_Name -------------------------------------------------- -------------------------------------------------- msteffl NULL spurcell Admin wgervais Admin djames Admin loaduser Admin mbreu Admin wgervais ComplianceContractors wgervais ComplianceOfficers sgregory ComplianceOfficers ntabares ComplianceOfficers lduffaut ComplianceOfficers pdeneree ComplianceOfficers serickson ComplianceOfficers mbreu ComplianceOfficers jreinhardt ComplianceOfficers jromoser ComplianceOfficers ebell ComplianceOfficers bkeogh ComplianceOfficers cbarnett ComplianceOfficers cbarnett Users bkeogh Users ebell Users djames Users jromoser Users jreinhardt Users mbreu Users serickson Users pdeneree Users lduffaut Users ntabares Users sgregory Users spurcell Users wgervais Users
任何和所有的投入,將不勝感激。
這看起來像您在Management Studio中檢查「輸出到文件」時獲得的「報告」,或調用'sqlcmd'。如果是這種情況,則不必修改任何查詢以獲得更好的格式化輸出,只是處理輸出的更好方法。你說你有「無法訪問」,但仍然值得回到源代碼並詢問他們是否可以,至少試着將網格結果複製粘貼到Management Studio中並粘貼到Excel中,這需要很少額外的技術複雜性。 –
要強調:這種格式*不*旨在允許一致的機器解析。你設計的任何解析都可能被數據中新行的創造性應用所破壞,這種格式不會試圖逃脫。如果*是從Management Studio輸出的,請注意,如果有足夠的數據,它也會截斷數據。實際上,將列和行分開是不可能的,除非那種猜測會使你的處理不夠可靠以至於毫無價值。 –
是的,這是一個輸出文件。要求他們將數據粘貼到另一個文件中,我能想到的最大問題是我不知道這是否可取。將查詢結果複製粘貼到電子表格中的額外步驟可能被認爲太乏味且效率低下,但無論我還是可以問問他們。如果可能的話,我(和他們)也會讚賞這一點。 – MrM21632