【问题标题】:Excluding strings from one string using Regex in iOS在 iOS 中使用正则表达式从一个字符串中排除字符串
【发布时间】:2012-05-13 16:17:47
【问题描述】:

我想做与Excluding strings using regex 几乎相同的操作,但我想在 iOS 上使用 Regex。所以我基本上想在字符串中找到匹配项,然后从字符串中删除它们,所以如果我有这样的字符串,Hello #world @something 我想找到#world & @something 然后从字符串中删除它们就变成了Hello。我已经有这个表达式可以删除 #worldsomething 但不是 @#[\\p{Letter}]+|[^@]+$ 我通过这样做解决了 @ 问题

NSString *stringWithoutAt = [input stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"@%@",atString] withString:@""];
NSString *stringWithoutTag = [input stringByReplacingOccurrencesOfString:tagString withString:@""]; 

所以对于第一个,我以Hello #world 结束,第二个以Hello @something 结束。但是有没有办法使用正则表达式或其他方法同时删除#world@something

【问题讨论】:

    标签: ios regex nsstring


    【解决方案1】:

    您可以通过两种方式在 iPhone 中使用正则表达式:-

    1>使用 RegExKitLIte 作为框架see the tutorial

    2>使用 NSRegularExpression 和 NSTextCheckingResult

    NSStirng *string=@"Your String";
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"@[a-z]*#[a-z]*" options:NSRegularExpressionCaseInsensitive error:&error];
    [regex enumerateMatchesInString:string options:0 range:NSMakeRange(0, [string length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop)
    {
        // your statement if it matches
    }];
    

    这里@之后的任何表达式和#之后的表达式都被连接

    在语句中你可以用空格替换它来得到你的表达

    如果你只是想修改字符串这样做:-

     NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0
    range:NSMakeRange(0, [string length]) withTemplate:@"$2$1"];
    

    【讨论】:

    • 抱歉,您能具体解释一下您在做什么吗?
    • 除了使用正则表达式之外还有什么办法吗?
    • 我写了一个匹配表达式@[letters]#[letters]的正则表达式,然后你可以在我提供的块中用@" "替换它。
    • 还有其他方法,比如在你的字符串中找到@符号,然后使用 substring 方法删除它之后的每个字符。
    • 我找到了一个更简单的解决方案,NSString *stringWithoutAnything = [string stringByReplacingOccurrencesOfRegex:[NSString stringWithFormat:@"%@ @%@",tagString,atString] withString:@""];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2013-11-24
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多