Sunday, May 1, 2011

Objective-c: regular expressions

Hi, is there something similar to regular expressions for objective-c?

I need a simple way to get elements from separated by following set of characters:

"\n"
", "
"; "

Currently I have the following code:

NSMutableArray *translations = [ [NSMutableArray alloc] init];
NSArray *temp_array1 = [ [translationsView text] componentsSeparatedByString:@"\n"];

for (int i = 0; i < [temp_array1 count]; i++)
{
 NSArray *temp_array2 = [ [temp_array1 objectAtIndex: i] componentsSeparatedByString:@", "];
 for (int j = 0; j < [temp_array2 count]; j++)
 {j]);
  [translations addObject: [temp_array2 objectAtIndex: j] ];
 }
}

But I as well want implement support for the "; " separator. And if I am going to do it the same way I did it before it would become way to complex.

Is there an easier way to achieve this goal?

Thank you in advance.

From stackoverflow
  • I think you will want to look at RegexKit Framework.

    RegexKit is an Objective-C framework for regular expressions:

    • Support for Mac OS X Cocoa and GNUstep. Mac OS X 10.4 or later required.
    • Mac OS X Universal Binary, including 64-bit support on Mac OS X 10.5.
    • No sub-classing required. Seamlessly adds regular expression support to all NSArray, NSData, NSDictionary, NSSet, and NSString Foundation objects with a rich set of Objective-C category additions.
    • Unicode enabled. Full Unicode support for NSString objects.
    • Extensive, high quality documentation.
    • Full source code with a BSD license.
    • Uses the BSD licensed PCRE Perl Compatible Regular Expressions library for the regular expression engine.

    Tuned for high performance, including such features as:

    • Caches the compiled form of the regular expression for speed.
    • Multithreading safe, including multiple reader, single writer multithreaded access to the compiled regular expression cache.
    • Makes minimal use of heap storage (ie, malloc() and free()), instead allocating most temporary buffer needs dynamically from the stack.
    • Uses Core Foundation directly on Mac OS X for additional speed.

    Includes support for Mac OS X 10.5 Leopard:

    • 64 bit support. Pre-built for ppc, ppc64, i386, and x86_64.
    • Garbage Collection enabled. Complete support for Leopards Garbage Collection feature.
    • Integrated Xcode 3.0 documentation. Get real time API information via the Research Assistant.
    • Collection of instruments for Instruments.app.
    • RegexKit specific DTrace probe points.

0 comments:

Post a Comment