Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在iOS中使用Regexp查找注释_Objective C_Regex - Fatal编程技术网

Objective c 在iOS中使用Regexp查找注释

Objective c 在iOS中使用Regexp查找注释,objective-c,regex,Objective C,Regex,我试图在objective-C中查找并处理字符串中的“java风格”注释 我有几个几乎可以使用的正则表达式片段,但我遇到了一个障碍:不同的选项似乎使不同的样式可以使用 例如,我使用此选项来匹配: NSArray* matches = [[NSRegularExpression regularExpressionWithPattern:expression options:NSRegularExpressionAnchorsMatchLines error:nil] matchesInString

我试图在objective-C中查找并处理字符串中的“java风格”注释

我有几个几乎可以使用的正则表达式片段,但我遇到了一个障碍:不同的选项似乎使不同的样式可以使用

例如,我使用此选项来匹配:

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,这正是我所期望的