为什么我的iOS正则表达式不起作用?

时间:2012-08-09 22:08:41

标签: ios xml regex nsregularexpression

我正在尝试从某些标签中获取所有XML(不仅仅是值,而是包括两个打开和关闭标签之间的更多XML),我想我会使用正则表达式。

我的代码看起来像这样

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 个答案:

答案 0 :(得分: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>