objective-c - 基本正则表达式

标签 objective-c regex nsregularexpression

我想替换字符串中的尖括号和空格。例如@"< something >"转到@"something" 。我目前正在尝试:

NSString *s1 = @"< something >";
NSString *s2 =
[s1 stringByReplacingOccurrencesOfString:@"[<> ]"
                              withString:@""
                                 options:NSRegularExpressionSearch
                                   range:NSMakeRange(0, s1.length)];

但是我对正则表达式是全新的,@"[<> ]"似乎不起作用。用于删除尖括号和空格的正确正则表达式是什么?

最佳答案

请注意 NSRegularExpressionSearch 的文档:

You can use this option only with the rangeOfString:... methods.

因此,即使您有正确的正则表达式,您也无法通过此方法使用它。

对于您描述的情况,使用 -stringByTrimmingCharactersInSet: 以及包含“<”和“”的字符集可能会更容易。

更新:Joshua Weinberg 指出您希望删除所有出现的字符“<”、“>”和“”。如果是这种情况,您需要查看 NSRegularExpression 的 -stringByReplacingMatchesInString:options:range:withTemplate: 方法:

NSError *error = nil;
NSRegularExpression *re = [NSRegularExpression regularExpressionWithPattern:@"<> " options:0 error:&error];
NSString *s1 = @"< something >";
NSRange range = NSMakeRange(0, s1.length);
NSString *s2 = [re stringByReplacingMatchesInString:s1 options:0 range:range withTemplate:@""];

(我还没有测试过,但它应该为您指明正确的方向。)

关于objective-c - 基本正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8571046/

相关文章:

objective-c - 将结构写入 NSMutableArray

iphone - 解析 XML 内部 XML 标签 Objective-C

java - 还提取带有一些特殊字符的模式

regex - 在swift中使用正则表达式从句子内部提取单词

swift - 使用正则表达式在字符串中查找多个引用的单词

objective-c - 在 obj-c (obj-c++) 模式下在 emacs 中的 header /实现之间切换缓冲区

ios - 如何使用 UITableViewHeaderFooterView?

regex - 使用正则表达式分割 SparkSQL

javascript - 正则表达式匹配不在括号内的字符串

ios - 使用 | 找到了哪个 NSRegularExpression运算符(operator)