2012-04-27 35 views
6

Tôi biết thay thế chuỗi chuỗi, nhưng chỉ hoạt động nếu tôi biết chính xác những gì tôi muốn xóa.Xóa ký tự và mọi thứ Sau chuỗi từ

Nếu tôi có một String như sau:

"hi-có-này-là-một-test & feature = hi-có"

Làm thế nào để xóa '& tính năng' và tất cả mọi thứ sau đó?

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn trước!

EDIT: Nếu hoàn toàn cần thiết để sử dụng REGEX, ai đó có thể chỉ cho tôi cách sử dụng nó không? Tôi biết nó là 10,7 trở đi nhưng tôi tốt với điều đó. Thậm chí tốt hơn, một ví dụ về String cắt tỉa hoặc sử dụng NSScanner?

Cảm ơn mọi người một lần nữa.

EDIT: Giải pháp được đăng bên dưới là đúng, nhưng kết quả là sự cố đối với tôi. Đây là cách tôi giải quyết vấn đề:

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

Trong khi về mặt kỹ thuật là một giải pháp, giải pháp mà làm việc nhiều hơn nó cần phải (cụ thể là, tạo ra một mảng). Bạn nên quay trở lại giải pháp của rdelmar và điều tra những gì bạn đang làm khiến nó sụp đổ, bởi vì bạn có thể vẫn đang làm nó và nó sẽ gây ra các vấn đề khác. –

+0

cảm ơn v nhiều vì sự giúp đỡ của bạn nhưng tôi tin rằng tôi đã có một cái nhìn tốt và tôi vừa tạo ra một chuỗi, điền nó với một URL, chuyển đổi nó, cắt nó, và sau đó sử dụng giải pháp này treo. Tôi ra khỏi chiều sâu của tôi cố gắng tìm ra lý do tại sao nó bị treo. – Cristian

+1

Như tôi đã nói, bạn nên đặt câu hỏi về điều đó. Bạn không thể học bất cứ điều gì hữu ích bằng cách chạy từ mọi vụ tai nạn bạn gặp phải; khi bạn gặp tai nạn, bạn nên giải quyết nó ngay từ đầu và học hỏi từ những gì bạn tìm thấy. –

Trả lời

20

Nó có thể được thực hiện mà không REGEX như thế này:

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

kết quả này trong một vụ tai nạn:/ – Cristian

+0

Nó không khi tôi chạy nó. Bạn có nhận được thông báo lỗi không? – rdelmar

+0

@Cristian: Sau đó, bạn đang làm điều gì đó sai trái. Đây là giải pháp đúng. Bạn nên đăng câu hỏi riêng về sự cố. –

1

Tra cứu các biểu thức chính quy, thường xuyên.

Ồ, wow, TIL không có cách tích hợp để thực hiện cụm từ thông dụng trong Cacao mục tiêu-C? theo số Regular expressions in an Objective-C Cocoa application

Dù sao, có libs được đề cập trong câu hỏi đó.

+0

là không có cách tích hợp? như 'stringByReplacingOccurrencesOfString() nhưng xóa mọi thứ sau? – Cristian

+0

Vâng, bạn có thể viết mã xung quanh nó với chức năng của riêng bạn mà thực hiện một cuộc gọi được xây dựng trong để có được vị trí của chuỗi phù hợp, sau đó cắt tỉa chuỗi tại điểm đó. Và nếu bạn có một môi trường đủ đơn giản, thì điều đó sẽ ổn thôi. Nhưng khi dự án của bạn phát triển, sau đó bạn sẽ được cắt-dán-dán mã chia sẻ đó ... tại sao không sử dụng một lib mạnh mẽ? – MarkHu

+0

Đó là một dự án nhỏ và mã này sẽ được bao gồm trong chức năng vòng lặp và chỉ có một lần xuất hiện cụ thể mà tôi cần loại bỏ, loại bỏ '& feature' và mọi thứ sau đó, điều này sẽ không thay đổi. Nếu bạn có thể cung cấp một ví dụ về việc tìm kiếm và sau đó cắt tỉa tôi sẽ rất biết ơn! – Cristian

Các vấn đề liên quan