我需要用abc
替换所有出现的xyz
,但前提是它们出现在Javadoc注释中。
我正在使用Eclipse。
我认为只需要使用\s*\*
或\s/\*
开始的行应该足以满足我的目的(不需要匹配"发生在{ {1}}和/**
",但这也可行。)
我尝试使用:*/
并替换为(\s\*|\s/\*)(.*)abc
,但问题是正则表达式是贪婪的,因此它只给出了与我的字符串匹配的最长行(即,我只能替换<在任何给定的行上,em> last $1$2xyz
。有没有办法要求所有的可能性,还是超出(非递归)正则表达式的范围?
如果它超出范围,递归表达式会起作用吗? (在任何情况下,Eclipse都不支持。)
答案 0 :(得分:0)
据我所知,这是不可能的。正则表达式遍历输入文本的每个字符一次,它不能返回。
您可以匹配JavaDoc行的第一个abc或最后一个abc,因为当它们中的任何一个匹配时,将该行定义为JavaDoc注释的字符不能再次匹配。