What a great idea, adding a category to do this! I was able to do it like so:
NSString *regexString = @"\\[\\[((\\w+)(~\\d+)?)\\]\\]";
NSString *replaceWithString = @"<span name=\"$1\">$2</span>";
First scenario without any numbers
[[Hello]]
:NSString *rawStoryString = @"[[Hello]]"; NSLog(@"rawStoryString: %@", rawStoryString); rawStoryString = [rawStoryString stringByReplacingOccurrencesOfRegex:regexString withString:replaceWithString]; NSLog(@"rawStoryString: %@", rawStoryString);
Its output is:
rawStoryString: [[Hello]] rawStoryString: <span name="Hello">Hello</span>
Second scenario with a tilde and number
[[Thanks~1]]
:rawStoryString = @"[[Thanks~1]]"; NSLog(@"rawStoryString: %@", rawStoryString); rawStoryString = [rawStoryString stringByReplacingOccurrencesOfRegex:regexString withString:replaceWithString]; NSLog(@"rawStoryString: %@", rawStoryString);
Its output is:
rawStoryString: [[Thanks~1]] rawStoryString: <span name="Thanks~1">Thanks</span>