Objective c 在iOS中使用Regexp查找注释
我试图在objective-C中查找并处理字符串中的“java风格”注释 我有几个几乎可以使用的正则表达式片段,但我遇到了一个障碍:不同的选项似乎使不同的样式可以使用 例如,我使用此选项来匹配:Objective c 在iOS中使用Regexp查找注释,objective-c,regex,Objective C,Regex,我试图在objective-C中查找并处理字符串中的“java风格”注释 我有几个几乎可以使用的正则表达式片段,但我遇到了一个障碍:不同的选项似乎使不同的样式可以使用 例如,我使用此选项来匹配: NSArray* matches = [[NSRegularExpression regularExpressionWithPattern:expression options:NSRegularExpressionAnchorsMatchLines error:nil] matchesInString
NSArray* matches = [[NSRegularExpression regularExpressionWithPattern:expression options:NSRegularExpressionAnchorsMatchLines error:nil] matchesInString:string options:0 range:searchRange];
此处的选项允许我成功查找和处理单行注释(//),但不允许查找和处理多行注释(//**/),如果我将选项更改为NSRegularExpressionDotMatchesLineSeparators,则可以使多行注释正常工作,但找不到单行注释的“结尾”
我想我真的需要点匹配行分隔符,但我需要一种更好的方法来查找单行注释的结尾
到目前为止,我拥有的regexp是:
@"/\\*.*?\\*/"
@"//.*$"
很明显,如果点与线分隔符匹配,那么第二个(单行)永远不会“结束”,但我如何解决这个问题?我发现一些关于单线的建议更像:
@"(\/\/[^"\n\r]*(?:"[^"\n\r]*"[^"\n\r]*)*[\r\n])"
但这似乎根本不起作用
提前感谢您的指点 因此,我的示例非常接近,只是出于某种原因,我在其中添加了一些不需要的反斜杠,它现在显示:
@"(//[^\"\n\r]*(?:\"[^\"\n\r]*\"[^\"\n\r]*)*[\r\n])"
(即,在Objective-C代码中)。为了澄清我自己的观点,我正在使用DotMatchesLineSeparator,这正是我所期望的