Разделители текста AppleScript в цели c - PullRequest
2 голосов
/ 09 августа 2010

Есть ли объективная версия c разделителей текста ??

Вот код appleScript:

set oldDelim to AppleScript's text item delimiters

set AppleScript's text item delimiters to "Jarvis>"
set charliePlainOutput to (what ever needs to be parsed)
set charlieUnmoddedOutput to last text item of charliePlainOutput
set charlieOutputFiltered to text item 1 of charlieUnmoddedOutput
set AppleScript's text item delimiters to "[Jarvis]"
set charlieOutputLast to text item 1 of charlieOutputFiltered
set AppleScript's text item delimiters to "["
set charlieOutput to text item 1 of charlieOutputLast

set AppleScript's text item delimiters to oldDelim

Есть идеи?

1 Ответ

2 голосов
/ 09 августа 2010

Метод NSString componentsSeparatedByString: будет делать в основном то же самое, что и text items в Applescript. Вы можете вызвать than, затем получить доступ к объектам из массива, чтобы получить подстроки. В этом примере захватывается весь текст после последнего вхождения «Jarvis>» в исходной строке:

NSString* originalString; //comes from somewhere
NSArray* substrings = [originalString componentsSeparatedByString:@"Jarvis>"];
NSString* lastSubstring = [substrings lastObject];

Однако, если вы просто хотите получить подстроку с передней или задней части существующей строки, взгляните на rangeOfString:, substringToIndex: и substringFromIndex:. Сначала вы должны использовать rangeOfString:, чтобы найти строку, которую хотите разделить, а затем один из методов подстроки, чтобы получить нужный текст. Это несколько более эффективно, чем componentsSeparatedByString:, если вы хотите получить доступ только к одной подстроке, а не к каждой отдельной подстроке, разделенной вашим разделителем текста. В этом примере захватывается весь текст перед первым появлением «[Jarvis]» в исходной строке:

NSRange jarvisRange = [originalString rangeOfString:@"[Jarvis]"];
NSString* substring = [originalString substringToIndex:jarvisRange.location];

Вы также можете использовать rangeOfString:options:, передав NSBackwardsSearch параметру параметров, если вы хотите выполнять поиск с конца строки, а не с начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...