我想替换字符串中的尖括号和空格。例如@"< 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/