Замена строки между двумя строками iphone SDK - PullRequest
0 голосов
/ 08 октября 2010

в цели c я хочу заменить строку между двумя строками.

Например "ab anystring yz"

я хочу заменить строку между "ab" и "yz".

это возможно сделать? Пожалуйста, помогите

спасибо заранее.

Ответы [ 3 ]

4 голосов
/ 15 апреля 2014

Вот проверенный код для выполнения вашей задачи.

NSString *string = @"ab anystring yz";
NSString *result = nil;
// Determine "ab" location
NSRange divRange = [string rangeOfString:@"ab" options:NSCaseInsensitiveSearch];
if (divRange.location != NSNotFound)
{
    // Determine "ab" location according to "yz" location
    NSRange endDivRange;

    endDivRange.location = divRange.length + divRange.location;
    endDivRange.length   = [string length] - endDivRange.location;
    endDivRange = [string rangeOfString:@"yz" options:NSCaseInsensitiveSearch range:endDivRange];

    if (endDivRange.location != NSNotFound)
    {
        // Tags found: retrieve string between them
        divRange.location += divRange.length;
        divRange.length = endDivRange.location - divRange.location;

        result = [string substringWithRange:divRange];

        string =[string stringByReplacingCharactersInRange:divRange withString:@"Replace string"];
    }
}

Теперь вы просто проверяете строку, которую получите ab Замените строку yz

2 голосов
/ 08 октября 2010
NSString *newString = [(NSString *)yourOldString stringByReplacingOccurrencesOfString:@"anystring" withString:@""];

в противном случае вам нужно будет получить копию REGEXKitLite и использовать функцию регулярного выражения, например:

NSString *newString = [(NSString *)yourOldString stringByReplacingOccurrencesOfRegex:@"ab\\b.\\byz" withString:@"ab yz"];
0 голосов
/ 12 декабря 2016
    -(NSString*)StrReplace :(NSString*)mainString preMatch:(NSString*) preMatch postMatch:(NSString*) postMatch replacementString:(NSString*) replacementString
    {
        @try

        {

            if (![mainString isEqualToString:@""] || [mainString isKindOfClass:[NSNull class]] || mainString==nil)
            {


                NSArray *preSubstring = [mainString componentsSeparatedByString:preMatch];
                NSString *preStr = [preSubstring objectAtIndex:0];

                NSArray *postSubstring = [mainString componentsSeparatedByString:postMatch];
                NSString *postStr = [postSubstring objectAtIndex:1];

                NSString *resultStr = [NSString stringWithFormat:@"%@%@%@%@%@" ,preStr,preMatch,replacementString,postMatch,postStr];

                return resultStr;

            }
            else
            {
                return @"";
            }

        }
        @catch (NSException *exception) {
        }
    }
...