我有一個URL字符串,我需要用它來替換值。替換主字符串中的多個不同的子字符串
例如:
HTTP:\\ www.domain.com \ ID = [USER_ID] &記錄= [CALL_KEY] &一些其它= [OTHER_STUFF]
我需要循環查找[]的字符串,然後用裏面的任何內容替換它。
現在,我必須對每個單獨的密鑰進行硬編碼並將其替換爲值。
- (NSString*) injectValuesIntoURL:(NSString*) url{
NSString * injected = @"";
//[CALL KEY]
injected = [url stringByReplacingOccurrencesOfString:@"[CALL_KEY]" withString:[[NSUserDefaults standardUserDefaults] objectForKey:@"kCallKey"]];
//[USER_ID]
injected = [injected stringByReplacingOccurrencesOfString:@"[USER_ID]" withString:[[NSUserDefaults standardUserDefaults] objectForKey:@"kUsername"]];
//[OTHER_STUFF]
injected = [injected stringByReplacingOccurrencesOfString:@"[OTHER_STUFF]" withString:[[NSUserDefaults standardUserDefaults] objectForKey:@"kOtherStuff"]];
return injected;
}
我有一堆可以插入不同的值,而不是硬編碼[通話鍵],我想動態讀什麼就在那裏,注入價值。因此初始URL可以是
HTTP:\\ www.domain.com \ ID = [kUsername] &記錄= [kCallKey] &一些其它= [kOtherStuff]
所以我可以通過找到[]的字符串循環,並用裏面的任何內容替換它。
如何搜索字符串,找到[字符,然後該字符串複製到],然後繼續下一個[某某等等?
我會使用正則表達式;得到一個想法,看看這裏:http://stackoverflow.com/questions/27880650/swift-extract-regex-matches –
請參閱[在Objective-C中的正則表達式:如何用動態模板替換匹配?](http:///stackoverflow.com/a/22458626/3832970)。在你的情況下,正則表達式是'@「\\ [(。+?)]」'或'@「\\ [([^ \\] \\ [] +)]」'。 –