我有2種不同類型的連接字符串(由於遺留原因,由於各種原因無法在任何地方修復,因此這裏無關)。我需要將它們分解爲鍵/值對。下面是示例連接字符串:標記連接字符串的正則表達式
1. Server=SomeServer;Database=SomeDatabase;Something=Hello
2. Server=SomeServer,Database=SomeDatabase;Something=Hello
3. Server=SomeServer,1111;Database=SomeDatabase;Something=Hello
對於第2例,我可以使用正則表達式:
(?<Key>[0-9A-z\s]+)=(?<Val>[0-9A-z\s,]+?[0-9A-z\s]+)
對於第三個,我可以使用正則表達式:
(?<Key>[0-9A-z\s]+)=(?<Val>[0-9A-z\s]+?[0-9A-z\s,]+)
如何將它變成適用於所有情況的一個正則表達式?
'[0-9A-z \ s,] +?[0-9A-z \ s] +'的用途是什麼?這[危險](http://www.regular-expressions.info/catastrophic.html)。 –
也許[使用DbConnectionStringBuilder](http://stackoverflow.com/questions/8524611/parsing-a-connection-string)會工作嗎? –
@Rawing:第一部分做了一個懶惰的比賽,在「=」之後抓到了第一個字母 - 然後我試圖用貪婪的比賽來捕捉其餘的部分。 – Denis