2012-08-09 97 views
0

我試圖從某些標記(不僅僅是值,而是包括兩個打開和關閉標記之間的更多XML)中獲取所有XML,並且我想要使用正則表達式。爲什麼我的iOS正則表達式不起作用?

我的代碼看起來像這樣

NSError *error2 = NULL; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<PayloadPost>(.*)</PayloadPost>" 
                     options:NSRegularExpressionCaseInsensitive 
                     error:&error2]; 
if (error2) 
{ 
    NSLog(@"Error %@", [error2 description]); 
} 

NSArray *payloadRanges=[regex matchesInString:theXMLString options:0 range:NSMakeRange(0, [theXMLString length])]; 
int size=[payloadRanges count]; 
printf("Size %d",size); 

基本上我需要在「PayloadPost」一切都好,但它不斷給我什麼。我一直得到0的大小,我知道XML中有3個實例。

任何人都可以幫我嗎?

回答

1

確保您設置的多標誌,https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html#//apple_ref/doc/c_ref/NSRegularExpressionDotMatchesLineSeparators

否則 ''字符將不匹配斷線之後,你的正則表達式匹配

<PayloadPost>something</PayloadPost> 

但不

<PayloadPost> 
something 
</PayloadPost> 
+0

那麼這工作,我在一個問號加星號後經過這麼那就非貪婪。現在我需要做的就是弄清楚如何讓字符串不包含「」和「 user1515993 2012-08-09 22:24:19

+0

檢查此問題http://stackoverflow.com/questions/6822356/capture-groups-not-working-in-nsregularexpression?rq=1 – Qnan 2012-08-09 22:28:42

+0

工作。是否有可能有1個選項? – user1515993 2012-08-09 22:40:59

相關問題