我想在C#中創建一個簡單的正則表達式來將字符串拆分爲標記。我遇到的問題是,我使用的模式捕獲一個空字符串,這會拋出我期望的結果。我能做些什麼來改變我的正則表達式,所以它不會捕獲空字符串?C#正則表達式捕獲空字符串
var input = "ID=123&User=JohnDoe";
var pattern = "(?:id=)|(?:&user=)";
var tokens = Regex.Split(input, pattern, RegexOptions.IgnoreCase);
// Expected Results
// tokens[0] == "123"
// tokens[1] == "JohnDoe"
// Actual Results
// tokens[0] == ""
// tokens[1] == "123"
// tokens[2] == "JohnDoe"
見[解析「查詢字符串」格式化數據的最簡單方法](https://stackoverflow.com/questions/11956948/easiest-way-to-parse-querystring-formatted-data)。 –
鏈接不回答OP - 它依賴於.NET核心中不存在的System.Net.Http靜態方法 –
@WiktorStribiżew肯定指向更好的方法。您的查詢字符串在語義上相同的輸入'「User = JohnDoe&ID = 123」'時會失敗,因爲您檢查了正則表達式中的&。最好不要在這一個上重新發明輪子。 –