1

08:30:00AM や 12:45:00PM などの時間値を含む文字列があります。これらの文字列の「秒」値を含む部分を削除して、08:30AM や 12:45:00 などの上位文字列を作成する必要があります。 12:45PM など。文字列が常に HH:MM:SS 値に時間文字列を含む必要はないため、NSDateFormatter を使用できません。他の文字列値が存在する可能性があります。 .

私は知っています、私は次のコードを使用できます。しかし、私が知る必要があるのは、文字列を見つけて変更するための正規表現が何であるかです。

NSString *string = @"string containing 08:30:00AM values and some text";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"???" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0   range:NSMakeRange(0, [string length]) withTemplate:@""];
NSLog(@"%@", modifiedString);

前もって感謝します..

4

2 に答える 2

3

時間であれば、dateformatter を使用できます。

NSString *string = @"08:30:00AM"; //This is your input time

NSDateFormatter *df=[NSDateFormatter new];
[df setDateFormat:@"hh:mm:ssa"];
NSDate *nowTime=[df dateFromString:string];    
[df setDateFormat:@"hh:mma"];
NSString *outputTime=[df stringFromDate:nowTime];

NSLog(@"time is : %@",outputTime); 

出力: 08:30AM

編集:

別の方法:

時間が常に指定された形式であると確信している場合は08:30:00AM08:30:05AM次を使用できます。

NSString *string = @"08:30:00AM";

NSString *aMPM=[string substringFromIndex:string.length-2];
NSString *noSecondAMPM= [string substringToIndex:string.length-5];
NSString *myTime=[NSString stringWithFormat: @"%@%@",noSecondAMPM,aMPM];

NSLog(@"time is : %@",myTime);
于 2013-04-29T11:57:23.507 に答える