1

我有一个 NSSting 结果内容,其中包含动态的 html 数据,并且 html 数据的长度总是根据用户输入而不同。

我可以通过替换 NSString 中的 " 在 SQLite3 中插入​​我的 html 数据。现在的问题是 SQlite3 没有任何内置函数来查找特定子字符串的位置。在 SQL 中,您可以为此使用 CHARINDEX 或 Patindex。

现在我试图找到这个子字符串“sphinx”的位置。我尝试了 NSrange、substringWithRange 等,但我没有得到这个子字符串的确切开始和结束位置。如何使用 NSLog 在控制台中显示 NSRange。这是我的代码

   //find substring "sphinx"

NSError *error = NULL;

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"sphinx"

                                                                       options:NSRegularExpressionCaseInsensitive

                                                                         error:&error];

//Get total length of resultcontent (NSString which contains whole html code)

    NSInteger lengthTotal=[resultContent length];

NSLog(@"lengthTotal is %i", lengthTotal);


  // Get NSRange
  NSRange rangeOfSubstring = [regex rangeOfFirstMatchInString:resultContent 
                                                    options:0 
                                                      range:NSMakeRange(0, lengthTotal)];



NSString *substringData = [resultContent substringWithRange:rangeOfSubstring];


if (!NSEqualRanges(rangeOfSubstring, NSMakeRange(NSNotFound, 0))) 
{

    NSString *substringData = [resultContent substringWithRange:rangeOfSubstring];
          NSLog(@"substringData is %@", substringData);
  [b]  // so far it works fine and shows substringData ="sphinx"  in Console

    //But folowing line doesn't show start and end position of substringData "sphinx"

      NSLog([@"range of substring is =%@",[resultContent substringWithRange:rangeOfSubstring] ];[/b]
}

如何从 NSString 中找到子字符串的确切位置?我也在 NSLog 中尝试了 %S,但没有结果。

我在 SQLite 表(文本数据类型)中也有相同的 NSString 结果内容数据。在没有 Charindex 和 patindex 函数的情况下,如何在 Sqlite 中找到字符的索引或子字符串的位置。由于 html 代码是动态的,长度根据用户输入而变化,所以我需要知道每次用户输入后子字符串的索引或位置。

4

0 回答 0