0

我想做与使用正则表达式排除字符串中的几乎相同的操作,但我想使用正则表达式来做 iOS。所以我基本上想在字符串中找到匹配项,然后将它们从字符串中删除,所以如果我有这样的字符串,Hello #world @something我想找到#world&@something然后将它们从字符串中删除,这样它就变成了Hello. 我已经有这个表达式可以删除#worldsomething但不是@#[\\p{Letter}]+|[^@]+$@通过这样做解决了这个问题

NSString *stringWithoutAt = [input stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"@%@",atString] withString:@""];
NSString *stringWithoutTag = [input stringByReplacingOccurrencesOfString:tagString withString:@""]; 

所以对于第一个我结束Hello #world和第二个Hello @something。但是有没有办法使用正则表达式或其他方法同时删除 the#world和 the @something

4

1 回答 1

2

您可以通过两种方式在 iPhone 中使用正则表达式:-

1>使用RegExKitLIte作为框架见教程

2>使用 NSRegularExpression & NSTextCheckingResult

NSStirng *string=@"Your String";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"@[a-z]*#[a-z]*" options:NSRegularExpressionCaseInsensitive error:&error];
[regex enumerateMatchesInString:string options:0 range:NSMakeRange(0, [string length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop)
{
    // your statement if it matches
}];

这里@之后的任何表达式和#之后的表达式都被连接起来

在语句中,您可以将其替换为空格以获取表达式

如果您只想修改字符串,请执行以下操作:-

 NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0
range:NSMakeRange(0, [string length]) withTemplate:@"$2$1"];
于 2012-05-13T16:48:06.960 回答