// // NSString+SelectString.m // FireBoltt // // Created by ecell on 2022/11/1. // Copyright © 2022 Sheldon. All rights reserved. // #import "NSString+SelectString.h" @implementation NSString (SelectString) - (NSString *)selcteStringWithSelectSatrt:(NSString *)startStr selecteEnd:(NSString *)endStr { NSString *startRegStr = [startStr stringByReplacingOccurrencesOfString:@"[" withString:@"\\["];//转义[ NSString *endRegStr = [endStr stringByReplacingOccurrencesOfString:@"[" withString:@"\\["];//转义[ NSString *regStr = [NSString stringWithFormat:@"%@.*?%@",startRegStr,endRegStr];//拼接正则字符 if (endStr.length == 0 ) { regStr = [NSString stringWithFormat:@"%@.*",startRegStr]; } if (startStr.length == 0) { regStr = [NSString stringWithFormat:@".*?%@",endStr]; } //正则方法截取字符串 NSRange codeRange = [self rangeOfString:regStr options:NSRegularExpressionSearch]; NSString *return_code; if (codeRange.location != NSNotFound) { return_code = [self substringWithRange:codeRange]; if (startStr.length) { return_code = [return_code stringByReplacingOccurrencesOfString:startStr withString:@""]; } if (endStr.length) { return_code = [return_code stringByReplacingOccurrencesOfString:endStr withString:@""]; } } else { return_code = @"字符串截取失败"; } return return_code; } + (NSString *)replaceUnicode:(NSString *)unicodeStr { NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\\u"withString:@"\\U"]; NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\""withString:@"\\\""]; NSString *tempStr3 = [[@"\""stringByAppendingString:tempStr2] stringByAppendingString:@"\""]; NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding]; NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData mutabilityOption:NSPropertyListImmutable format:NULL errorDescription:NULL]; return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n"withString:@"\n"]; } +(NSString *)utf8ToUnicode:(NSString *)string { NSUInteger length = [string length]; NSMutableString *str = [NSMutableString stringWithCapacity:0]; for (int i = 0;i < length; i++){ NSMutableString *s = [NSMutableString stringWithCapacity:0]; unichar _char = [string characterAtIndex:i]; // 判断是否为英文和数字 if (_char <= '9' && _char >='0'){ [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]]; }else if(_char >='a' && _char <= 'z'){ [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]]; }else if(_char >='A' && _char <= 'Z') { [s appendFormat:@"%@",[string substringWithRange:NSMakeRange(i,1)]]; }else { // 中文和字符 [s appendFormat:@"\\u%x",[string characterAtIndex:i]]; // 不足位数补0 否则解码不成功 if(s.length == 4) { [s insertString:@"00" atIndex:2]; } else if (s.length == 5) { [s insertString:@"0" atIndex:2]; } } [str appendFormat:@"%@", s]; } return str; } @end