tags:

views:

138

answers:

1

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.

+3  A: 

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.
Andrew Hare