NSString의 문자 집합 앞에 특정 문자를 추가하고 싶습니다. 예를 들어NSString의 문자 집합에 특정 문자를 추가하는 방법
:
NSString *input = @"abc^ 123 # //> <";
NSString *insertBefore = @"~";
NSCharacterSet *needBeInserted = [NSCharacterSet
characterSetWithCharactersInString:@"~#^/<>"];
예상 결과 : input
에 나타납니다 needBeInserted
의 모든 문자가 insertBefore
을 추가합니다.
result = @"abc~^ 123 ~# ~/~/~> ~<";
우아한 방법이 있습니까? stringByReplacingOccurrencesOfString
의 여러 줄을 사용하는 대신?
NSRange searchRange = NSMakeRange(0,[input length]);
NSRange charRange;
while((charRange = [input rangeOfCharactersFromSet:escapeSet options:NSBackwardSearch).length range:searchRange)
{
// It is allowed to have a 0-length range: Insertion
input = [input stringByReplacingCharactersInRange:NSMakeRange(charRange.location, 0) withString:@"\"];
// Shorten the search range
searchRange = NSMakeRange(0, charRange.location);
}
Safari에서 글 :
사용 ['escapedPattern'] (https://developer.apple.com/documentation/foundation/nsregularexpression/1408386-escapedpatternforstring?language=
는 Objective-C demo online를 참조하십시오 objc) –
불행히도 '<' , '>'같은 일부 문자는 포함되지 않습니다. – user2131907
하지만 정규식 안에서는 특별한 것이 아니며 탈출 할 필요가 없습니다. 질문에서 정확한 요구 사항 (탈출해야 할 문자는 무엇입니까?)을 정의하십시오. –