0

正規表現を使用して文字列を除外する場合とほぼ同じように実行したいのですが、正規表現を使用してiOSで実行したいと思います。だから私は基本的に文字列内の一致を見つけて文字列から削除したいので、このような文字列がある場合は、文字列からそれらHello #world @somethingを見つけて削除したいので、ちょうど。になり#worldます。私はすでにこの式を削除していますが、削除していません。これを行うことで問題 を解決しました@somethingHello#worldsomething@#[\\p{Letter}]+|[^@]+$@

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

したがって、最初のものは最終的にHello #world、2番目のものはになりHello @somethingます。#worldしかし、正規表現などを使用してと@somethingを同時に削除する方法はありますか?

4

1 に答える 1

2

iPhoneで正規表現を使用するには、次の2つの方法があります。-

1>フレームワークとしてRegExKitLIteを使用するチュートリアルを参照してください

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"];
于 2012-05-13T16:48:06.960 に答える