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

为什么我的iOS正则表达式不工作?,ios,xml,regex,nsregularexpression,Ios,Xml,Regex,Nsregularexpression,我试图从某些标记(不仅仅是值,还包括两个打开和关闭标记之间的更多XML)中获取所有XML,我想我应该使用正则表达式 我的代码如下所示 NSError *error2 = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<PayloadPost>(.*)</PayloadPost>"

我试图从某些标记(不仅仅是值,还包括两个打开和关闭标记之间的更多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);
NSError*error2=NULL;
NSRegularExpression*regex=[NSRegularExpression regular expression with pattern:@”(.*)”
选项:nsregularexpressioncase不敏感
错误:&error2];
如果(错误2)
{
NSLog(@“Error%@,[error2 description]);
}
NSArray*payloadRanges=[regex-matchesisnstring:theXMLString选项:0-range:NSMakeRange(0[theXMLString-length]);
int size=[payloadRanges计数];
printf(“尺寸%d”,尺寸);
基本上,我需要“PayloadPost”中的所有东西,但它一直没有给我任何东西。我的大小一直是0,我知道XML中有3个实例


有人能帮我吗?

确保设置了多行标志

否则,“.”字符将与换行符不匹配,正则表达式将匹配

<PayloadPost>something</PayloadPost>
什么 但不是

<PayloadPost>
something
</PayloadPost>

某物

很好,我在星号后面加了一个问号,这样它就不会贪婪了。现在我需要做的就是找出如何使字符串不包含“”和“check this”多个“选择?”?。。您的确切意思是什么?假设同一NSRegularExpression的dotmatcheslineseparator和不区分大小写选项都是不区分大小写的。我假设它们应该使用按位OR运算符组合,如
nsregularexpressioncasesensitive;nsregularexpressiondotmatcheslineseparator