Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7053863
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T03:33:24+00:00 2026-05-28T03:33:24+00:00

I need to split a phrase into words, digits, punctuation marks, and spaces/tabs. I

  • 0

I need to split a phrase into words, digits, punctuation marks, and spaces/tabs. I also would like to preserve the order of things.

NSString *text = [NSString stringWithFormat:@"The 3 quick:\"brown fox, jump's\" over."];

This is the kind of list I need to yield:

['The', ' ', '3', ' ', 'quick, ':', '"', 'brown', ' ', 'fox', ',', ' ', 'jump's', ' ', '.']

Thank you!!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T03:33:25+00:00Added an answer on May 28, 2026 at 3:33 am

    Try out this category I wrote using a NSScanner & NSCharacterSet:

    @interface NSString(Splitting)
    
    -(NSArray *) arrayBySeparatingComponentsInCharacterSet:(NSCharacterSet *) charSet;
    
    @end
    
    @implementation NSString(Splitting)
    
    BOOL scanOneCharacterFromSetIntoString(NSScanner *self, NSCharacterSet * charSet, NSString **outStr);
    BOOL scanOneCharacterFromSetIntoString(NSScanner *self, NSCharacterSet * charSet, NSString **outStr)
    {
        // check for index out of bounds
        NSString *inStr = self.string;
    
        if (self.scanLocation >= inStr.length)
        {
            return NO;
        }
    
        unichar ch = [inStr characterAtIndex:self.scanLocation];
    
        if (![charSet characterIsMember:ch])
        {
            return NO;
        }
    
        self.scanLocation++;
        if (outStr)
        {
            *outStr = [NSString stringWithCharacters:&ch length:1];
        }
    
        return YES;
    }
    
    -(NSArray *) arrayBySeparatingComponentsInCharacterSet:(NSCharacterSet *)charSet
    {
        NSScanner *scanner = [NSScanner scannerWithString:self];
        NSMutableArray *result = [NSMutableArray array];
    
        NSString *temp = nil;
        while ([scanner scanUpToCharactersFromSet:charSet intoString:&temp] || scanOneCharacterFromSetIntoString(scanner, charSet, &temp)) {;
            [result addObject:temp];
    
            if ([scanner scanLocation] >= [self length])
            {
                break;
            }
    
            unichar temp2 = [self characterAtIndex:[scanner scanLocation]];
    
            if ([charSet characterIsMember:temp2])
            {
                [result addObject:[NSString stringWithFormat:@"%c", temp2]];
                // only update the scan location if the scan was sucessful
                [scanner setScanLocation:[scanner scanLocation] + 1];
            }
        }
    
        return result;
    }
    
    @end
    
    int main (int argc, const char * argv[])
    {
        @autoreleasepool {
    
            NSString *str = @"The 3 quick:\"brown fox, jump's\" over.";
            NSArray *array = [str arrayBySeparatingComponentsInCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@" :\",'."]];
            NSLog(@"%@", array);
        }
    }
    

    Should be what you need, just change the Character Set to what you need. Also note that this was compiled with ARC enabled, so it may or may not work properly with memory management in a reference counted environment.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need to split a string (in Java) into individual words ... but I
I need to split string by spaces, but phrase in quotes should be preserved
I need split string by commas and spaces, but ignore the inside quotes, single
I need to split an flv file into chunks of the known size on
I need to split my string input into an array at the commas. Is
I need to split ABAP date like 20091101 --> "01", "november", "2009" The "01"
I need to split a string into chunks of 2,2,3,3 characters and was able
In C# I need to split a string (a log4j log file) into array
I have a long string (multiple paragraphs) which I need to split into a
I need to split long string into a array with following constrains: The input

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.