[英]How can I find string in quote using Regular Expression?
我有一個包含以下內容的文本:
"id": "100001470360923",
"name": "Đặng Minh Khiêm",
"first_name": "Đặng Minh",
"last_name": "Khiêm",
"link": "https://www.facebook.com/mrkhiem97",
"username": "mrkhiem97",
"birthday": "10/09/1992",
"location": {
"id": "108458769184495",
"name": "Ho Chi Minh City, Vietnam"
},
我試圖在C#中使用正則表達式以獲取2個字符串:“ id”:“ 100001470360923”“ name”:“ĐặngMinhKhiêm”
String patternID = "\"id\":\"\\d+\"";
String patternName = "\"name\":\"[\\w]+\"";
Match matchID = Regex.Match(data, patternID);
Match matchName = Regex.Match(data, patternName);
但這不適用於patternName
我不知道如何使用模式。 有人可以給我這個圖案嗎?
正則表達式不起作用,因為名稱中包含非單詞字符(例如空格)。 您可以使用[^\\"]+
匹配不包含引號的任何內容,這是一個完整的示例:
String data = "\"id\": \"100001470360923\", \"name\": \"Ð?ng Minh Khiêm\", \"first_name\": \"Ð?ng Minh\", \"last_name\": \"Khiêm\", \"link\": \"https://www.facebook.com/mrkhiem97\", \"username\": \"mrkhiem97\", \"birthday\": \"10/09/1992\", \"location\": { \"id\": \"108458769184495\", \"name\": \"Ho Chi Minh City, Vietnam\" },";
String patternID = "\"id\": \"[^\\\"]+\"";
String patternName = "\"name\": \"[^\\\"]+\"";
Match matchID = Regex.Match(data, patternID);
Match matchName = Regex.Match(data, patternName);
Console.WriteLine(matchID.Value);
Console.WriteLine(matchName.Value);
輸出:
"id": "100001470360923"
"name": "Ð?ng Minh Khiêm"
當然,如果這是其他格式(看起來與JSON非常相似),則使用用於解析該格式的庫會更容易。 看一下DataContractJsonSerializer或類似的類。
試試這個:
var pattern = "\"id\":\\s*\"(?<id>[^\"]*)\"\\s*,\\s*\"name\"\\s*:\\s*\"(?<name>[^\"]*)\"";
var match = Regex.Match(strInput, pattern);
var id = match.Groups["id"].Value;
var name = match.Groups["name"].Value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.