2012-05-13 12 views
0

Excluding strings using regexとほぼ同じにしたいと思いますが、Regexを使用してiOSを実行します。だから、私は基本的に一致する文字列を見つけて文字列から削除するため、Hello #world @somethingを検索して文字列から削除すると、Helloになります。私はすでに私はHello #worldで終わる最初の2つ目Hello @somethingためだから、これiOSのRegexを使用して1つの文字列から文字列を除外する

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

を行うことによって@問題を解決し#worldsomethingではなく@#[\\p{Letter}]+|[^@]+$を削除し、この表現を持っています。しかし、Regexなどを使用して#world@somethingの両方を同時に削除する方法はありますか?

答えて

2

次の2つの方法でiPhoneでの正規表現を使用することができます -

1>の枠組みsee the tutorial

2としてRegExKitLIteの使用> NSRegularExpression & NSTextCheckingResult

ここ
NSStirng *[email protected]"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 
}]; 

任意の@の後の式と式を使用して#を連結した後に

と入力すると、iスペースでtはあなたの表現

取得するuは単に変更された文字列は、これを実行したい場合: -

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

申し訳ありませんが、あなたは何をしているかを正確に説明することができますか? – Souljacker

+0

これを行うためにRegexを使用することとは別の方法がありますか? – Souljacker

+0

式@ [letters]#[letters]にマッチする正規表現を書いています。そして、あなたが提供したブロックで@ ""置き換えることができます。 –

関連する問題