2012-04-27 34 views
6

文字列の文字列を置き換えることに気づいていますが、削除する内容がわかっている場合にのみ動作します。文字列と文字列をすべて文字列から削除する

私は、次のような文字列がある場合:

"HI--これは-あり-テスト&機能を= HI-が" 私は '&機能' と、すべてを

削除するにはどうすればよいですその後に来る?

ご協力いただければ幸いです。前もって感謝します!

EDIT:REGEXを絶対に使用する必要がある場合は、誰かに使用方法を教えてもらえますか?私はそれが10.7であることを承知しているが、私はそれでうまくいく。さらに、ストリングのトリミングやNSScannerの使用の例がありますか?

ありがとうございました。

編集:下記の解決策は正しいですが、私のためにクラッシュしました。これは私が問題を解決した方法です:

NSString *newString = [[oldString componentsSeparatedByString: @"&feature="] objectAtIndex:0]; 
+0

技術的ソリューションながら、その溶液は、それが必要以上に作業が(すなわち、配列が作成され)ありません。 rdelmarのソリューションに戻って、それがクラッシュする原因となったことを調べるべきです。なぜなら、おそらくまだやっていて、他の問題を引き起こすからです。 –

+0

おかげさまでvありがとうございましたが、私は見栄えが良いと思います。ちょうど文字列を作成し、URLを入力して変換し、トリムしてからこのソリューションを使用するとクラッシュします。私はクラッシュする理由を理解しようとしています。 – Cristian

+1

私が言ったように、それについての質問をするべきです。あなたは、あなたが遭遇するすべてのクラッシュから実行することによって有用なものを学ぶことはできません。あなたがクラッシュしたときには、それを正面から取り上げて、あなたが見つけたものから学ぶべきです。 –

答えて

20

それはこのようREGEXことなく行うことができる。

NSString *string = @"hi-there-this-is-a-test&feature=hi-there"; 
    NSRange range = [string rangeOfString:@"&feature"]; 
    NSString *shortString = [string substringToIndex:range.location]; 
+0

これはクラッシュします:/ – Cristian

+0

私はそれを実行しません。エラーメッセージが出る – rdelmar

+0

@クリスチャン:あなたは何か間違ったことをしています。これが正しい解決策です。クラッシュについて別の質問を投稿する必要があります。 –

1

ルックアップパターンマッチング、別名正規表現。

ああ、うわー、TIL Objective-C Cocoaに正規表現を組み込む方法はないのですか? Regular expressions in an Objective-C Cocoa application

とにかく、その質問にはlibsがあります。

+0

組み込みの方法はありませんか? 'stringByReplacingOccurrencesOfString()と似ていますが、後は​​すべて削除しますか? – Cristian

+0

文字列の位置を取得するための組み込み呼び出しを行い、その時点で文字列を切り捨てる、独自の関数を使ってコードを書くことができます。十分なシンプルな環境があれば、それは問題ありません。しかし、あなたのプロジェクトが成長したら、その共有コードをカットアンドペーストするでしょう...なぜ堅牢なlibを使わないのでしょうか? – MarkHu

+0

これは小さなプロジェクトで、このコードはループ関数に含まれていて、削除する必要のある特定のオカレンスが1つしかなく、 '&feature'とそれ以降はすべて削除されますが、これは変更されません。あなたがそれを見つけて、それから切り取る例を与えることができたら、私は非常に感謝します! – Cristian