2013-03-04 77 views
1

我有這樣正則表達式來檢測在JSON字符串的圖案

"Settings" : { "UserId" : 3, "UserToken" : "4578965235874158", "SecurityCode" : "111", "Password" : "12345", "UserPhone" : "555-555-1531", "drop" : -1, "UserLastName" : "Smith" } 

我需要一個正則表達式模式找到"UserToken"的值(在本例4578965235874158

很抱歉,如果字符串這是一個「給我代碼」的問題,但我從來沒有使用正則表達式,我沒有太多時間學習並嘗試自己做。

感謝您的幫助。

附加說明: 我將在Objective-C中將它用於iPhone應用程序。我不知道這是否會影響到任何事情,但以防萬一。

EDIT' 的模式是:該鍵總是"UserToken"後跟一個空格由:然後經過另一個空間自帶雙引號"內的值。我想獲得這個價值。

+0

描述的模式爲,以肯。例如,「正好n位數」等 – 2013-03-04 11:08:50

+0

它需要是正則表達式嗎? JSON值可以通過它們的鍵訪問。你只需要一個[objective-c json解析器](https://github.com/gabriel/yajl-objc) – Awalias 2013-03-04 11:10:45

+1

json總是有相同的格式嗎? 在這種情況下,我寧願使用JSON解析器而不是正則表達式魔法。 – Viehzeug 2013-03-04 11:10:57

回答

0

因爲它是你並不真的需要用正則表達式解析它一個JSON格式,但是如果你需要的話,這可能是一個解決辦法:

(?<="UserToken"\s:\s")\d+ 
0

我早就把它轉換和訪問所有信息我需要像:

NSString *str = @"\"Settings\" : { \"UserId\" : 3, \"UserToken\" : \"4578965235874158\", \"SecurityCode\" : \"111\", \"Password\" : \"12345\", \"UserPhone\" : \"555-555-1531\", \"drop\" : -1, \"UserLastName\" : \"Smith\" }"; 

//NSDictionary *jsonDict = [str JSONValue]; 

NSError *error; 
NSData *jsonData = [str dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *results = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 

不是所有的信息都存儲在結果的NSDictionary,就必須這樣做:[results valueForKey:(NSString *)][results objectForKey::(NSString *)]

+0

感謝您的這一點,但我需要使用正則表達式 – Youssef 2013-03-04 12:26:52

+0

歡迎:)在這裏,我們說感謝upvotes :)也許如果我會嘗試使用正則表達式來查看和寫一個方法(我現在沒有minde) – 2013-03-04 12:30:27

相關問題