This is NSString+MiscRegex.h in view mode; [Download] [Up]
//
// NSString+MiscRegex.h -- add regular expression support to NSString
// Written by Carl Lindberg Copyright (c) 1997 by Carl Lindberg.
// Version 1.0 All rights reserved.
// This notice may not be removed from this source code.
//
// This object is included in the MiscKit by permission from the author
// and its use is governed by the MiscKit license, found in the file
// "LICENSE.rtf" in the MiscKit distribution. Please refer to that file
// for a list of all applicable permissions and restrictions.
//
#import <Foundation/NSString.h>
#import "regexpr.h"
//#import <misckit/regexpr.h>
/*
* Additional flags you can pass with the options parameter:
*
* MiscFasterSearch will use the fastmap feature of the regexpr package.
* This will result in faster searches on longer strings, but the overhead
* may not be worth it with short strings.
*
* MiscUseMatchSubstitutions will turn on special processing on the
* 'replace string' used in the -stringByReplacingEveryOccurrenceOfRegex...
* and -stringByReplacingRegex... methods. A string of the form '$<digit>'
* will be replaced with the text matched by the <digit>'th parenthesized
* subexpression. For example, for the regex "aa(b+)", "$1" would be
* replaced with the string of b's matched by the "b+" part of the regex.
* "$0" and "&" are special tokens that will be replaced with the entire
* matched text. Use "$$" and "$&" if you want a literal '$' or '&'.
*/
enum
{
MiscFasterSearch = 4096,
MiscUseMatchSubstitutions = 8192
};
extern NSString *MiscRegexException;
/* Keys used for the grep: methods */
extern NSString *MiscBeforePiece;
extern NSString *MiscMiddlePiece;
extern NSString *MiscAfterPiece;
extern NSString *MiscBeforeRangePiece;
extern NSString *MiscMiddleRangePiece;
extern NSString *MiscAfterRangePiece;
extern NSString *MiscSubstringsPiece;
extern NSString *MiscSubrangesPiece;
/* Functions to get regexp_t structures for use in RegexStruct functions */
regexp_t MiscNewRegexStruct(NSString *regexString, unsigned options);
void MiscFreeRegexStruct(regexp_t pattern);
@class NSDictionary, NSArray;
@interface NSString (MiscRegex)
- (unsigned)numOfRegex:(NSString *)regex options:(unsigned)mask range:(NSRange)range;
- (NSRange)rangeOfRegex:(NSString *)regex options:(unsigned)mask occurrenceNum:(int)n
range:(NSRange)range;
- grep:(NSString *)regex forPiece:(NSString *)key options:(unsigned)mask occurrenceNum:(int)n;
- (NSDictionary *)grep:(NSString *)regex forPieces:(NSArray *)keys
options:(unsigned)mask occurrenceNum:(int)n;
- (NSString *)stringByReplacingEveryOccurrenceOfRegex:(NSString *)regex
withString:(NSString *)aString options:(unsigned)mask range:(NSRange)range;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString
options:(unsigned)mask occurrenceNum:(int)n range:(NSRange)range;
- (NSArray *)stringsMatchedByRegex: (NSString *)regex options:(unsigned)mask;
- (NSArray *)rangesMatchedByRegex: (NSString *)regex options:(unsigned)mask;
- (NSArray *)componentsSeparatedByRegex:(NSString *)regex options:(unsigned)mask;
- (BOOL)isValidRegex;
/*
* The same methods as above, but taking a precompiled regex structure
* instead of an NSString.
*/
- (unsigned)numOfRegexStruct:(regexp_t)pattern options:(unsigned)mask range:(NSRange)range;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern options:(unsigned)mask occurrenceNum:(int)n
range:(NSRange)range;
- grepRegexStruct:(regexp_t)pattern forPiece:(NSString *)key options:(unsigned)mask
occurrenceNum:(int)n;
- (NSDictionary *)grepRegexStruct:(regexp_t)pattern forPieces:(NSArray *)keys
options:(unsigned)mask occurrenceNum:(int)n;
- (NSString *)stringByReplacingEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)aString options:(unsigned)mask range:(NSRange)range;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString*)replaceString
options:(unsigned)mask occurrenceNum:(int)n range:(NSRange)range;
- (NSArray *)stringsMatchedByRegexStruct: (regexp_t)pattern options:(unsigned)mask;
- (NSArray *)rangesMatchedByRegexStruct: (regexp_t)pattern options:(unsigned)mask;
- (NSArray *)componentsSeparatedByRegexStruct:(regexp_t)pattern options:(unsigned)mask;
#ifndef _HEADER_VIEWER_ /* convenience methods */
- (unsigned)numOfRegex:(NSString *)regex;
- (unsigned)numOfRegex:(NSString *)regex options:(unsigned)mask;
- (unsigned)numOfRegex:(NSString *)regex range:(NSRange)range;
- (NSRange)rangeOfRegex:(NSString *)regex;
- (NSRange)rangeOfRegex:(NSString *)regex options:(unsigned)mask;
- (NSRange)rangeOfRegex:(NSString *)regex occurrenceNum:(int)n;
- (NSRange)rangeOfRegex:(NSString *)regex options:(unsigned)mask occurrenceNum:(int)n;
- (NSRange)rangeOfRegex:(NSString *)regex range:(NSRange)range;
- (NSRange)rangeOfRegex:(NSString *)regex options:(unsigned)mask range:(NSRange)range;
- (NSRange)rangeOfRegex:(NSString *)regex occurrenceNum:(int)n range:(NSRange)range;
- (NSDictionary *)grep:(NSString *)regex forPieces:(NSArray *)keys;
- (NSDictionary *)grep:(NSString *)regex forPieces:(NSArray *)keys options:(unsigned)mask;
- (NSDictionary *)grep:(NSString *)regex forPieces:(NSArray *)keys occurrenceNum:(int)n;
- grep:(NSString *)regex forPiece:(NSString *)keys;
- grep:(NSString *)regex forPiece:(NSString *)keys options:(unsigned)mask;
- grep:(NSString *)regex forPiece:(NSString *)keys occurrenceNum:(int)n;
- (NSString *)stringByReplacingEveryOccurrenceOfRegex:(NSString *)regex
withString:(NSString *)aString;
- (NSString *)stringByReplacingEveryOccurrenceOfRegex:(NSString *)regex
withString:(NSString *)aString options:(unsigned)mask;
- (NSString *)stringByReplacingEveryOccurrenceOfRegex:(NSString *)regex
withString:(NSString *)aString range:(NSRange)range;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString
options:(unsigned)mask;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString
occurrenceNum:(int)n;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString
options:(unsigned)mask occurrenceNum:(int)n;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString
range:(NSRange)range;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString
options:(unsigned)mask range:(NSRange)range;
- (NSString *)stringByReplacingRegex:(NSString*)regex withString:(NSString*)replaceString
occurrenceNum:(int)n range:(NSRange)range;
- (NSArray *)stringsMatchedByRegex:(NSString *)regex;
- (NSArray *)rangesMatchedByRegex:(NSString *)regex;
- (NSArray *)componentsSeparatedByRegex:(NSString *)regex;
- (unsigned)numOfRegexStruct:(regexp_t)pattern;
- (unsigned)numOfRegexStruct:(regexp_t)pattern options:(unsigned)mask;
- (unsigned)numOfRegexStruct:(regexp_t)pattern range:(NSRange)range;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern options:(unsigned)mask;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern occurrenceNum:(int)n;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern options:(unsigned)mask occurrenceNum:(int)n;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern range:(NSRange)range;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern options:(unsigned)mask range:(NSRange)range;
- (NSRange)rangeOfRegexStruct:(regexp_t)pattern occurrenceNum:(int)n range:(NSRange)range;
- (NSDictionary *)grepRegexStruct:(regexp_t)pattern forPieces:(NSArray *)keys;
- (NSDictionary *)grepRegexStruct:(regexp_t)pattern forPieces:(NSArray *)keys
options:(unsigned)mask;
- (NSDictionary *)grepRegexStruct:(regexp_t)pattern forPieces:(NSArray *)keys
occurrenceNum:(int)n;
- grepRegexStruct:(regexp_t)pattern forPiece:(NSString *)keys;
- grepRegexStruct:(regexp_t)pattern forPiece:(NSString *)keys options:(unsigned)mask;
- grepRegexStruct:(regexp_t)pattern forPiece:(NSString *)keys occurrenceNum:(int)n;
- (NSString *)stringByReplacingEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)aString;
- (NSString *)stringByReplacingEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)aString options:(unsigned)mask;
- (NSString *)stringByReplacingEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)aString range:(NSRange)range;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString*)replaceString;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString*)replaceString options:(unsigned)mask;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString*)replaceString occurrenceNum:(int)n;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString*)replaceString options:(unsigned)mask occurrenceNum:(int)n;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString*)replaceString range:(NSRange)range;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString *)replaceString options:(unsigned)mask range:(NSRange)range;
- (NSString *)stringByReplacingRegexStruct:(regexp_t)pattern
withString:(NSString *)replaceString occurrenceNum:(int)n range:(NSRange)range;
- (NSArray *)stringsMatchedByRegexStruct:(regexp_t)pattern;
- (NSArray *)rangesMatchedByRegexStruct:(regexp_t)pattern;
- (NSArray *)componentsSeparatedByRegexStruct:(regexp_t)pattern;
#endif
@end
@interface NSMutableString (MiscRegex)
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString
options:(unsigned)mask occurrenceNum:(int)n range:(NSRange)range;
- (void)replaceEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)replaceString options:(unsigned)mask range:(NSRange)range;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString
options:(unsigned)mask occurrenceNum:(int)n range:(NSRange)range;
- (void)replaceEveryOccurrenceOfRegex:(NSString *)regex withString:(NSString *)replaceString
options:(unsigned)mask range:(NSRange)range;
#ifndef _HEADER_VIEWER_ /* convenience methods */
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString;
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString
options:(unsigned)mask;
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString
occurrenceNum:(int)n;
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString
options:(unsigned)mask occurrenceNum:(int)n;
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString
range:(NSRange)range;
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString
options:(unsigned)mask range:(NSRange)range;
- (void)replaceRegex:(NSString *)regex withString:(NSString *)replaceString
occurrenceNum:(int)n range:(NSRange)range;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString
options:(unsigned)mask;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString
occurrenceNum:(int)n;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString
options:(unsigned)mask occurrenceNum:(int)n;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString
range:(NSRange)range;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString
options:(unsigned)mask range:(NSRange)range;
- (void)replaceRegexStruct:(regexp_t)pattern withString:(NSString *)replaceString
occurrenceNum:(int)n range:(NSRange)range;
- (void)replaceEveryOccurrenceOfRegex:(NSString *)regex withString:(NSString *)replaceString;
- (void)replaceEveryOccurrenceOfRegex:(NSString *)regex withString:(NSString *)replaceString
options:(unsigned)mask;
- (void)replaceEveryOccurrenceOfRegex:(NSString *)regex withString:(NSString *)replaceString
range:(NSRange)range;
- (void)replaceEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)replaceString;
- (void)replaceEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)replaceString options:(unsigned)mask;
- (void)replaceEveryOccurrenceOfRegexStruct:(regexp_t)pattern
withString:(NSString *)replaceString range:(NSRange)range;
#endif
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.