我有一个任务,我必须打开许多文件,搜索//@public object
模式,如果它没有匹配项,请删除该文件中//@public doc
之前没有的所有 JavaScript 注释。
例如,可能有类似的东西:
//@public doc
/**
* @function
* checks for specific conditions
* specific variables
*/
并且保持原样。但是需要删除所有其他 JavaScript 注释。
它的正则表达式是什么,以及如何实现?
先感谢您。
同时,我想出了以下解决方案
<fileset id="jsmvcdoc.fileset" dir="${doctempfolder}" includes="**/*.js">
<not>
<contains text="//@public object" casesensitive="no"/>
</not>
</fileset>
<!-- JS Comments -->
<replaceregexp match="(?!doc. +)/\*.+?\*/" replace="" flags="gs" byline="false">
<fileset refid="jsmvcdoc.fileset"/>
</replaceregexp>
哪个过滤文件集仅包括那些不包含 //@public 对象的文件,但我不知道如何制作正则表达式,它将去除除 //@public doc 行之前的所有注释之外的所有注释
以这种方式解决它:
<!-- strip out js comments not preceeded by //@public doc -->
<replaceregexp match="(?<!//@public doc\x0D\x0A )/\*.+?\*/" replace="" flags="gs" byline="false">
<fileset refid="jsmvcdoc.fileset"/>
</replaceregexp>