目标c中的reg表达式在新行上失败

时间:2011-09-06 05:27:21

标签: objective-c regex

我想使用目标c从HTML中删除所有脚本标记。

我写了这个reg ex:

html1 = [html1 stringByReplacingOccurrencesOfString:@"<script.+?</script>" withString:@"xxx" options: NSRegularExpressionCaseInsensitive|NSRegularExpressionSearch | NSRegularExpressionDotMatchesLineSeparators range:NSMakeRange (0, [html1 length])];

这对没有新行的字符串有用,例如:

html1 = @"<script> blah blah </script>";

但是使用新行的字符串失败,例如:

html1 = @"<script> blah \n blah </script>";

任何人都知道我做错了什么?

谢谢!

ps我知道这在嵌套脚本标签上失败了。

1 个答案:

答案 0 :(得分:1)

我不相信这些正则表达式选项(例如NSRegularExpressionDotMatchesLineSeparators)对stringByReplacingOccurrencesOfString:withString:options:有效 - AFAIK,NSRegularExpressionSearch只提供基本正则表达式支持。对于更高级的正则表达式,您将需要使用NSRegularExpression类。